summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorPaul-Christian Volkmer2023-09-27 16:24:43 +0200
committerPaul-Christian Volkmer2023-09-27 16:24:43 +0200
commitc7d6851130aa5c69c81e9414bd3a8a2b790d7ad5 (patch)
treecd88c3040ad65d43b204a95d3fedd99d33e1823d /examples
parent408726045245b35ab2e8ce5fab29250dd8d1af7e (diff)
Verschiebe Formularscripte in Verzeichnis `/scripts`
Diffstat (limited to 'examples')
-rw-r--r--examples/uf-einzelempfehlung/klinik_anamnese-getEcogStatus.js30
-rw-r--r--examples/uf-einzelempfehlung/studien-dialog.js215
-rw-r--r--examples/uf-einzelempfehlung/varianten-dialog.js266
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