diff options
| author | Paul-Christian Volkmer | 2023-09-27 16:24:43 +0200 |
|---|---|---|
| committer | Paul-Christian Volkmer | 2023-09-27 16:24:43 +0200 |
| commit | c7d6851130aa5c69c81e9414bd3a8a2b790d7ad5 (patch) | |
| tree | cd88c3040ad65d43b204a95d3fedd99d33e1823d /examples | |
| parent | 408726045245b35ab2e8ce5fab29250dd8d1af7e (diff) | |
Verschiebe Formularscripte in Verzeichnis `/scripts`
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/uf-einzelempfehlung/klinik_anamnese-getEcogStatus.js | 30 | ||||
| -rw-r--r-- | examples/uf-einzelempfehlung/studien-dialog.js | 215 | ||||
| -rw-r--r-- | examples/uf-einzelempfehlung/varianten-dialog.js | 266 |
3 files changed, 0 insertions, 511 deletions
diff --git a/examples/uf-einzelempfehlung/klinik_anamnese-getEcogStatus.js b/examples/uf-einzelempfehlung/klinik_anamnese-getEcogStatus.js deleted file mode 100644 index 763b683..0000000 --- a/examples/uf-einzelempfehlung/klinik_anamnese-getEcogStatus.js +++ /dev/null @@ -1,30 +0,0 @@ -// To be included in Script "Beim Neuanlegen" of form "DNPM Klink/Anamnese" - -executePluginMethod('DNPMHelper', 'getEcogStatus', {PatientId: getPatient().id}, (resp) => { - if (resp.status.code === 1) { - // Hack: Get version id of ECOG status as stored in Database - // by using initial empty entry and its version. - // Since OS always creates an initial empty entry for subforms - // this can be used to get required version id from within a form script. - let version = getFieldValue('ECOGVerlauf')[0].ECOG.version; - - // Abort if no version available. - if (version == null) { - return; - } - - let uf = resp.result - .map(item => { - let date = item.date.match(/^\d{4}-\d{2}-\d{2}/); - let ecog = []; - ecog.val = item.status; - ecog.version = version; - return { - Datum: [date ? date[0] : null, 'exact'], ECOG: ecog - }; - }) - // Ignore items without valid values - .filter(item => item.Datum[0] && (item.ECOG >= 0 && item.ECOG <= 5)); - setFieldValue('ECOGVerlauf', uf); - } -}, false);
\ No newline at end of file diff --git a/examples/uf-einzelempfehlung/studien-dialog.js b/examples/uf-einzelempfehlung/studien-dialog.js deleted file mode 100644 index 4ec4da8..0000000 --- a/examples/uf-einzelempfehlung/studien-dialog.js +++ /dev/null @@ -1,215 +0,0 @@ -const availableStore = new Ext.data.ArrayStore({ - fields: [ - {name: 'kategorieName'}, - {name: 'version'}, - {name: 'code'}, - {name: 'type'}, - {name: 'studiennummer'}, - {name: 'shortDesc'}, - {name: 'description'} - ] -}); - -let pluginRequestsDisabled = false; - -const findButtonFieldFormInformation = function (context) { - const findElemId = function (elem) { - if (elem.tagName === 'BODY') { - return undefined; - } - - if (elem.tagName === 'TABLE') { - return elem.id; - } - - return findElemId(elem.parentElement); - } - - const formInfo = function (formItem, blockIndex = undefined) { - if (formItem.xtype === 'buttonField') { - return formInfo(formItem.ownerCt, formItem.blockIndex); - } - - if (formItem.xtype === 'panel' || formItem.xtype === 'sectionField') { - return formInfo(formItem.ownerCt, blockIndex); - } - - if (formItem.xtype === 'subformField') { - return { - isSubform: true, - formName: formItem.formName, - subformFieldName: formItem.subformName, - blockIndex: blockIndex - }; - } - - if (formItem.xtype === 'form') { - return { - isSubform: false, - }; - } - - console.warn('No information found!'); - return undefined; - } - - if (context.genericEditForm && document.activeElement.tagName === 'BUTTON') { - let elemId = findElemId(document.activeElement); - if (elemId) { - let formItem = context.genericEditForm.down('#' + elemId); - if (formItem) { - return formInfo(formItem); - } - } - } - - return undefined; -} - -const request = function (query, includeInactive) { - if (pluginRequestsDisabled) return; - executePluginMethod( - 'EinzelempfehlungAnalyzer', - 'getStudien', - includeInactive ? {q: query, inactive: true} : {q: query}, - function (response) { - if (response.status.code < 0) { - onFailure(); - return; - } - onSuccess(response.result); - }, - false - ); -}; - -const itemMapping = function (item) { - return [item.kategorieName, item.version, item.code, item.type, item.studiennummer, item.shortDesc, item.description]; -} - -const onFailure = function () { - pluginRequestsDisabled = true; - Ext.MessageBox.show({ - title: 'Hinweis', - msg: 'Plugin "DNPM" nicht verfügbar.', - buttons: Ext.MessageBox.OKCANCEL - }); -}; - -const onSuccess = function (d) { - available = d; - const extData = available.map(itemMapping); - availableStore.loadData(extData); -} - -const save = (selectedItemIndex) => { - this.getFieldByEntriesArray('studie', blockIndex).setValue(available[selectedItemIndex].shortDesc); - this.getFieldByEntriesArray('studienct', blockIndex).setValue(available[selectedItemIndex].studiennummer); -} - -const showDialog = function (blockIndex) { - let selectedItemIndex = -1; - let queryString = ''; - let includeInactive = false; - - const gridColumns = [ - {header: 'Kategorie', width: 80, sortable: false, dataIndex: 'kategorieName'}, - {header: 'Version', width: 80, sortable: false, dataIndex: 'version'}, - {header: 'Typ', width: 120, sortable: false, dataIndex: 'type'}, - {header: 'Studiennummer', width: 120, sortable: true, dataIndex: 'studiennummer'}, - {header: 'Name', width: 320, sortable: true, dataIndex: 'shortDesc'}, - {header: 'Beschreibung', width: 400, sortable: false, dataIndex: 'description'} - ]; - - - const query = new Ext.form.field.Text({ - name: 'query', - fieldLabel: 'Suche', - padding: 8, - listeners: { - change: (f) => { - queryString = f.value; - request(queryString, includeInactive); - } - } - }); - - const inactiveSelection = new Ext.form.field.Checkbox({ - name: 'inactive', - fieldLabel: 'Inaktive Studien einschließen', - labelWidth: 240, - padding: 8, - listeners: { - handler: (_, checked) => { - includeInactive = checked; - request(queryString, includeInactive); - } - } - }); - - const availableGrid = new Ext.grid.GridPanel({ - title: 'Verfügbare Studien', - store: availableStore, - loadMask: true, - border: true, - columns: gridColumns, - flex: 1, - listeners: { - itemclick: (dv, record, item, index) => { - selectedItemIndex = index; - }, - itemdblclick: (dv, record, item, index) => { - save(selectedItemIndex); - let win = Ext.WindowManager.getActive(); - if (win) { - win.close(); - } - } - } - }); - - const layout = Ext.create('Ext.Panel', { - flex: 1, - layout: { - type: 'vbox', - align: 'stretch' - }, - items: [query, inactiveSelection, availableGrid] - }); - - Ext.create('Ext.window.Window', { - title: 'Studienauswahl', - height: 600, - width: 1080, - layout: 'fit', - items: [layout], - buttons: [{ - id: 'btnAdd', - text: 'Studie auswählen', - handler: () => { - save(selectedItemIndex); - let win = Ext.WindowManager.getActive(); - if (win) { - win.close(); - } - } - }, { - text: 'Abbrechen', - cls: 'onko-btn-cta', - handler: () => { - let win = Ext.WindowManager.getActive(); - if (win) { - win.close(); - } - } - }] - }).show(); - - request(); -}; - -let buttonFieldFormInformation = findButtonFieldFormInformation(this); -if (buttonFieldFormInformation && buttonFieldFormInformation.blockIndex) { - blockIndex = buttonFieldFormInformation.blockIndex; - showDialog(blockIndex); -} diff --git a/examples/uf-einzelempfehlung/varianten-dialog.js b/examples/uf-einzelempfehlung/varianten-dialog.js deleted file mode 100644 index c447bf8..0000000 --- a/examples/uf-einzelempfehlung/varianten-dialog.js +++ /dev/null @@ -1,266 +0,0 @@ -const availableStore = new Ext.data.ArrayStore({ - fields: [ - {name: 'id'}, - {name: 'ergebnis'}, - {name: 'gen'}, - {name: 'exon'}, - {name: 'pathogenitaetsklasse'} - ] -}); - -const selectedStore = new Ext.data.ArrayStore({ - fields: [ - {name: 'id'}, - {name: 'ergebnis'}, - {name: 'gen'}, - {name: 'exon'}, - {name: 'pathogenitaetsklasse'} - ] -}); - -let pluginRequestsDisabled = false; -let available = []; -let selected = []; -let blockIndex = null; - -const findButtonFieldFormInformation = function(context) { - const findElemId = function(elem) { - if (elem.tagName === 'BODY') { - return undefined; - } - - if (elem.tagName === 'TABLE') { - return elem.id; - } - - return findElemId(elem.parentElement); - } - - const formInfo = function(formItem, blockIndex = undefined) { - if (formItem.xtype === 'buttonField') { - return formInfo(formItem.ownerCt, formItem.blockIndex); - } - - if (formItem.xtype === 'panel' || formItem.xtype === 'sectionField') { - return formInfo(formItem.ownerCt, blockIndex); - } - - if (formItem.xtype === 'subformField') { - return { - isSubform: true, - formName: formItem.formName, - subformFieldName: formItem.subformName, - blockIndex: blockIndex - }; - } - - if (formItem.xtype === 'form') { - return { - isSubform: false, - }; - } - - console.warn('No information found!'); - return undefined; - } - - if (context.genericEditForm && document.activeElement.tagName === 'BUTTON') { - let elemId = findElemId(document.activeElement); - if (elemId) { - let formItem = context.genericEditForm.down('#'+elemId); - if (formItem) { - return formInfo(formItem); - } - } - } - - return undefined; -} - -const request = function (id) { - if (pluginRequestsDisabled) return; - executePluginMethod( - 'EinzelempfehlungAnalyzer', - 'getVariants', - {id: id}, - function (response) { - if (response.status.code < 0) { - onFailure(); - return; - } - onSuccess(response.result); - }, - false - ); -}; - -const itemMapping = function (item) { - return [item.id, item.ergebnis, item.gen, item.exon, item.pathogenitaetsklasse]; -} - -const addItem = function (item) { - if (selected.map(item => item.id).indexOf(item.id) >= 0) { - return; - } - selected.push(item); - const extData = selected.map(itemMapping); - selectedStore.loadData(extData); -}; - -const removeItem = function (index) { - selected.splice(index, 1); - const extData = selected.map(itemMapping); - selectedStore.loadData(extData); -}; - -const save = () => { - const names = selected.map((item) => { - return `${item.ergebnis}: ${item.gen}, ${item.exon}, ${item.pathogenitaetsklasse}`; - }).join("\n"); - - this.getFieldByEntriesArray('stmolaltalle', blockIndex).setValue(names); - this.getFieldByEntriesArray('stmolaltvariantejson', blockIndex).setValue(JSON.stringify(selected)); -}; - -const onFailure = function() { - pluginRequestsDisabled = true; - Ext.MessageBox.show({ - title: 'Hinweis', - msg: 'Plugin "DNPM" nicht verfügbar.', - buttons: Ext.MessageBox.OKCANCEL - }); -}; - -const onSuccess = function(d) { - available = d; - const extData = available.map(itemMapping); - availableStore.loadData(extData); -} - -const showDialog = function (procedureId) { - let selectedItemIndex = -1; - let deselectedItemIndex = -1; - - try { - selected = JSON.parse(getFieldValue('stmolaltvariantejson', blockIndex)); - const extData = selected.map(itemMapping); - selectedStore.loadData(extData); - } catch (e) { - selected = []; - const extData = selected.map(itemMapping); - selectedStore.loadData(extData); - } - - const gridColumns = [ - {header: 'Ergebnis', width: 240, sortable: false, dataIndex: 'ergebnis'}, - {header: 'Gen', width: 80, sortable: false, dataIndex: 'gen'}, - {header: 'Exon', width: 80, sortable: false, dataIndex: 'exon'}, - {header: 'Pathogenitätsklasse', sortable: false, dataIndex: 'pathogenitaetsklasse'}, - ]; - - const availableGrid = new Ext.grid.GridPanel({ - title: 'Verfügbar', - store: availableStore, - loadMask: true, - border: true, - columns: gridColumns, - flex: 1, - overflowY: 'scroll', - listeners: { - itemclick: (dv, record, item, index) => { - selectedItemIndex = index; - Ext.getCmp('btnAdd').setDisabled(false); - }, - itemdblclick: (dv, record, item, index) => { - selectedItemIndex = -1 - addItem(available[index]); - Ext.getCmp('btnAdd').setDisabled(true); - } - } - }); - - const selectedGrid = new Ext.grid.GridPanel({ - title: 'Ausgewählt', - store: selectedStore, - loadMask: true, - border: true, - columns: gridColumns, - flex: 1, - overflowY: 'scroll', - listeners: { - itemclick: (dv, record, item, index) => { - deselectedItemIndex = index; - Ext.getCmp('btnRm').setDisabled(false); - }, - itemdblclick: (dv, record, item, index) => { - deselectedItemIndex = -1 - removeItem(index); - Ext.getCmp('btnRm').setDisabled(true); - } - } - }); - - const gridLayout = Ext.create('Ext.Panel', { - flex: 1, - layout: { - type: 'hbox', - align: 'stretch' - }, - items: [availableGrid, { xtype: 'splitter' }, selectedGrid] - }); - - const layout = Ext.create('Ext.Panel', { - flex: 1, - layout: { - type: 'vbox', - align: 'stretch' - }, - items: [gridLayout] - }); - - Ext.create('Ext.window.Window', { - title: 'Variante auswählen', - height: 600, - width: 1080, - layout: 'fit', - items: [layout], - buttons: [{ - id: 'btnAdd', - text: 'Hinzufügen', - disabled: true, - handler: () => { - addItem(available[selectedItemIndex]); - Ext.getCmp('btnAdd').setDisabled(true); - } - }, { - id: 'btnRm', - text: 'Entfernen', - disabled: true, - handler: () => { - removeItem(deselectedItemIndex); - Ext.getCmp('btnRm').setDisabled(true); - } - }, { - text: 'Übernehmen', - cls: 'onko-btn-cta', - handler: () => { - save(); - let win = Ext.WindowManager.getActive(); - if (win) { - win.close(); - } - } - }] - }).show(); - - request(procedureId); -}; - -let buttonFieldFormInformation = findButtonFieldFormInformation(this); -if (buttonFieldFormInformation && buttonFieldFormInformation.blockIndex) { - blockIndex = buttonFieldFormInformation.blockIndex; -} - -var procedureId = getFieldValue('refosmolekulargenetik', blockIndex).id; - -showDialog(procedureId);
\ No newline at end of file |
