Skip to content

Commit

Permalink
add button Sloučit automaticky (fix broken foreign ppl day of birth 1.)
Browse files Browse the repository at this point in the history
  • Loading branch information
ldrahnik committed Dec 14, 2021
1 parent d0ee96a commit 2406d4b
Show file tree
Hide file tree
Showing 4 changed files with 169 additions and 1 deletion.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,7 @@ Osobní informace pacientů podmíněné přihlášením do modulu [Pacienti COV
- Na stránce ověření žádanky zobrazuje údaje na profilu (email, telefon) a umožňuje tlačítkem **Uložit na profil** tyto údaje přepsat údaji ze žádanky

![Preview](preview/zobrazeni_udaju_na_profilu_pri_overeni_zadanky.PNG)

- Přidává tlačítko **Automaticky sloučit** na detail profilu

![Preview](preview/tlacitko_automaticky_sloucit.PNG)
51 changes: 51 additions & 0 deletions background/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -229,5 +229,56 @@ chrome.runtime.onMessage.addListener(function (msg, sender, sendResponse) {
}
);
return true;
} else if(msg.text === 'getFromUrlPacientId') {
if(typeof browser === 'undefined') {
chrome.tabs.query({active: true}, function(tabs) {

if(!tabs[0]) {
return;
}

var url = tabs[0].url;

var pacientId = undefined;
var urlParams = new URLSearchParams(url);

if(urlParams.has("id")) {
pacientId = urlParams.get("id");
} else {
pacientId = url.split("/").pop();
}
sendResponse(pacientId);
});
} else {
browser.tabs.query({active: true}).then(function (tabs) {

if(!tabs[0]) {
return;
}

var url = tabs[0].url;

var pacientId = undefined;
var urlParams = new URLSearchParams(url);

if(urlParams.has("id")) {
pacientId = urlParams.get("id");
} else {
pacientId = url.split("/").pop();
}
sendResponse(pacientId);

});
}
return true;
} else if (msg.text === 'DuplikatyPacienta' && msg.data.Jmeno && msg.data.Prijmeni && msg.data.DatumNarozeni) {

data1 = msg.data;
data1.DatumNarozeni = "01" + msg.data.DatumNarozeni.substring(msg.data.DatumNarozeni.indexOf("."), msg.data.DatumNarozeni.length);

loadOckoUzisPatientInfo(msg.data, function(PacientInfo) {
sendResponse(PacientInfo);
});
return true;
}
});
115 changes: 114 additions & 1 deletion content/content.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@ function getRegistrCUDOvereniGetCertifikatUrl(Cislo) {
return getRegistrZadankyDomainUrl() + "/Registr/CUD/Overeni/GetCertifikat?Cislo=" + Cislo;
}

function getRegistrCUDZadankyPacientDetailSloucitPacientyUrl(callback) {
callback(getEregRegistrUrl() + "/Registr/CUDZadanky/PacientDetail/SloucitPacienty");
}

function getRegistrZadankyDomain() {
return "eregpublicsecure.ksrzis.cz";
}
Expand Down Expand Up @@ -750,9 +754,17 @@ if(
});
}

var JmenoLabelDetailProfilu = document.querySelector('label[for="Pacient_Jmeno"]');
var PrijmeniLabelDetailProfilu = document.querySelector('label[for="Pacient_Prijmeni"]');
var CisloPojistenceDetailProfilu = document.querySelector('label[for="Pacient_CisloPojistence"]');
var DatumNarozeniDetailProfilu = document.querySelector('label[for="PacientDatumNarozeniText"]');
var CisloPacientaDetailprofilu = document.querySelector('label[for="Pacient_CisloPacienta"]');
var StatniPrislusnostDetailProfilu = document.querySelector('label[for="Pacient_RobObcanstviZemeKod"');
var StatniPrislusnostKodDetailProfilu = document.querySelector('label[for="Pacient_NarodnostKod"');
var EditLinkDetailProfilu = document.querySelector('a[id^="link_registr_cudzadanky_pacientdetail_cizinec_"]');

const vyhledatPacientaVPacientiLinkElementId = "vyhledat-v-pacienti";
var vyhledatPacientaVPacientiLinkElement = document.getElementById(vyhledatPacientaVPacientiLinkElementId);
var DatumNarozeniDetailProfilu = document.querySelector('label[for="PacientDatumNarozeniText"]');

var detailPacientaActions = document.querySelector('.actions');

Expand All @@ -779,4 +791,105 @@ if(
vyhledatPacientaVPacientiLinkElement.setAttribute("role", "button");

detailPacientaActions.appendChild(vyhledatPacientaVPacientiLinkElement);
}


const vyhledatDuplikatyPacientaLinkElementId = "sloucit-duplikaty-pacienta";
var vyhledatDuplikatyPacientaLinkElement = document.getElementById(vyhledatDuplikatyPacientaLinkElementId);


var detailPacientaAllActions = document.querySelectorAll('.actions');

// pouze cizinci
if(
!vyhledatDuplikatyPacientaLinkElement &&
CisloPacientaDetailprofilu && CisloPacientaDetailprofilu.nextElementSibling.innerText &&
JmenoLabelDetailProfilu && JmenoLabelDetailProfilu.nextElementSibling.innerText &&
PrijmeniLabelDetailProfilu && PrijmeniLabelDetailProfilu.nextElementSibling.innerText &&
DatumNarozeniDetailProfilu && DatumNarozeniDetailProfilu.nextElementSibling.innerText &&
((StatniPrislusnostDetailProfilu && StatniPrislusnostDetailProfilu.nextElementSibling.innerText) || (StatniPrislusnostKodDetailProfilu && StatniPrislusnostKodDetailProfilu.nextElementSibling.innerText)) &&
detailPacientaAllActions
) {
var lastDetailPacientaActions = detailPacientaAllActions[detailPacientaAllActions.length - 1];

vyhledatDuplikatyPacientaLinkElement = document.createElement("a");
vyhledatDuplikatyPacientaLinkElement.setAttribute("class", "button-action ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only valid");
vyhledatDuplikatyPacientaLinkElement.setAttribute("id", vyhledatDuplikatyPacientaLinkElementId);
vyhledatDuplikatyPacientaLinkElement.text = "Sloučit automaticky";
vyhledatDuplikatyPacientaLinkElement.setAttribute("role", "button");

vyhledatDuplikatyPacientaLinkElement.addEventListener('click', function() {

var Jmeno = JmenoLabelDetailProfilu.nextElementSibling.innerText;
var Prijmeni = PrijmeniLabelDetailProfilu.nextElementSibling.innerText;
var DatumNarozeni = DatumNarozeniDetailProfilu.nextElementSibling.innerText;
var CisloPojistence = CisloPojistenceDetailProfilu.nextElementSibling.innerText;
var ZemeKod_Title = StatniPrislusnostDetailProfilu ? StatniPrislusnostDetailProfilu.nextElementSibling.innerText : StatniPrislusnostKodDetailProfilu ? StatniPrislusnostKodDetailProfilu.nextElementSibling.innerText : undefined;

var StatniPrislusnost = undefined;
if(EditLinkDetailProfilu) {
var StatniPrislusnostTemp = EditLinkDetailProfilu.href.substring(EditLinkDetailProfilu.href.indexOf("ZemeKod=") + 8, EditLinkDetailProfilu.href.length - 1);
StatniPrislusnost = StatniPrislusnostTemp.substring(0, StatniPrislusnostTemp.indexOf("&"));
}
var CisloPacienta = CisloPacientaDetailprofilu.nextElementSibling.innerText;

chrome.runtime.sendMessage({
"text": "DuplikatyPacienta",
"data": {
"Jmeno": Jmeno,
"Prijmeni": Prijmeni,
"DatumNarozeni": DatumNarozeni,
"CisloPojistence": CisloPojistence,
"StatniPrislusnost": StatniPrislusnost,
"ZemeKod_Title": ZemeKod_Title,
}
}, function(PacientInfo) {

if(!PacientInfo.Cislo) {
alert("Pacient ke sloučení nenalezen.");
} else {
chrome.runtime.sendMessage({
"text": "getFromUrlPacientId"
}, function(pacientId) {
getRegistrCUDZadankyPacientDetailSloucitPacientyUrl(function(url) {

const sloucitPacientaFormId = "sloucit-duplikaty-pacienta-form";
var form = document.getElementById(sloucitPacientaFormId);

if(form) {
return;
}

form = document.createElement("form");
form.action = url;
form.method = "POST";
form.target = "_blank";

var inputId = document.createElement("input");
inputId.type = "hidden";
inputId.value = pacientId;
inputId.name = "Id";
form.appendChild(inputId);

var inputSlucovany = document.createElement("input");
inputSlucovany.type = "hidden";
inputSlucovany.value = PacientInfo.Cislo;
inputSlucovany.name = "SlucovanyCislo";
form.appendChild(inputSlucovany);

var inputSlucujici = document.createElement("input");
inputSlucujici.type = "hidden";
inputSlucujici.value = CisloPacienta;
inputSlucujici.name = "SlucujiciCislo";
form.appendChild(inputSlucujici);

vyhledatDuplikatyPacientaLinkElement.parentNode.append(form);
form.submit();
});
});
}
});
}, false);

lastDetailPacientaActions.appendChild(vyhledatDuplikatyPacientaLinkElement);
}
Binary file added preview/tlacitko_automaticky_sloucit.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 2406d4b

Please sign in to comment.