diff options
Diffstat (limited to 'forms')
| -rw-r--r-- | forms/dnpm-formulare.osc | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/forms/dnpm-formulare.osc b/forms/dnpm-formulare.osc index 430510f..75315b2 100644 --- a/forms/dnpm-formulare.osc +++ b/forms/dnpm-formulare.osc @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <OnkostarEditor> <InfoXML> - <DatumXML>2026-06-19Z</DatumXML> + <DatumXML>2026-06-30Z</DatumXML> <Name>OnkoStar</Name> <Version>2.14.2</Version> </InfoXML> @@ -9101,7 +9101,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> </ScriptBeimAnonymisieren> <SID>20119</SID> <GUID>06847050-ff8f-46c4-87b8-9584c0cef990</GUID> - <Revision>272</Revision> + <Revision>273</Revision> <SeitenzahlSichtbar>true</SeitenzahlSichtbar> <Entries> <Entry parentRefId="12368"> @@ -9475,8 +9475,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>empfehlungskategorie <> 'studie'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>studie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -9618,9 +9618,9 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>(hatstudie = '1' or empfehlungskategorie <> 'systemisch') and studienallejson <> '' and studienallejson <> '[]'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> - <RefEntry>studienallejson</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>studienallejson</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -9695,7 +9695,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Datenart>BOTH</Datenart> <NotSpecified>false</NotSpecified> <Scripts> - <Code>const availableStore = new Ext.data.ArrayStore({&#10; fields: [&#10; {name: 'code'},&#10; {name: 'name'},&#10; {name: 'system'},&#10; {name: 'version'}&#10; ]&#10;});&#10;&#10;const selectedStore = new Ext.data.ArrayStore({&#10; fields: [&#10; {name: 'code'},&#10; {name: 'name'},&#10; {name: 'system'},&#10; {name: 'version'}&#10; ]&#10;});&#10;&#10;let pluginRequestsDisabled = false;&#10;let available = [];&#10;let selected = [];&#10;let blockIndex = null;&#10;&#10;const findButtonFieldFormInformation = function(context) {&#10; const findElemId = function(elem) {&#10; if (elem.tagName === 'BODY') {&#10; return undefined;&#10; }&#10;&#10; if (elem.tagName === 'TABLE') {&#10; return elem.id;&#10; }&#10;&#10; return findElemId(elem.parentElement);&#10; }&#10;&#10; const formInfo = function(formItem, blockIndex = undefined) {&#10; if (formItem.xtype === 'buttonField') {&#10; return formInfo(formItem.ownerCt, formItem.blockIndex);&#10; }&#10;&#10; if (formItem.xtype === 'panel') {&#10; return formInfo(formItem.ownerCt, blockIndex);&#10; }&#10;&#10; if (formItem.xtype === 'subformField') {&#10; return {&#10; isSubform: true,&#10; formName: formItem.formName,&#10; subformFieldName: formItem.subformName,&#10; blockIndex: blockIndex&#10; };&#10; }&#10;&#10; if (formItem.xtype === 'form') {&#10; return {&#10; isSubform: false,&#10; };&#10; }&#10;&#10; console.warn('No information found!');&#10; return undefined;&#10; }&#10;&#10; if (context.genericEditForm && document.activeElement.tagName === 'BUTTON') {&#10; let elemId = findElemId(document.activeElement);&#10; if (elemId) {&#10; let formItem = context.genericEditForm.down('#'+elemId);&#10; if (formItem) {&#10; return formInfo(formItem);&#10; }&#10; }&#10; }&#10;&#10; return undefined;&#10;}&#10;&#10;const request = function (q) {&#10; if (pluginRequestsDisabled) return;&#10; executePluginMethod(&#10; 'AtcCodesHelper',&#10; 'query',&#10; {q: q, size: 25},&#10; function (response) {&#10; if (response.status.code < 0) {&#10; onFailure();&#10; return;&#10; }&#10; onSuccess(response.result);&#10; },&#10; false&#10; );&#10;};&#10;&#10;const addItem = function (item) {&#10; selected.push(item);&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version]);&#10; selectedStore.loadData(extData);&#10;};&#10;&#10;const removeItem = function (index) {&#10; selected.splice(index, 1);&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version]);&#10; selectedStore.loadData(extData);&#10;};&#10;&#10;const save = () => {&#10; const names = selected.map((item) => {&#10; return item.name;&#10; }).join("\n");&#10;&#10; this.getFieldByEntriesArray('wirkstoffe', blockIndex).setValue(names);&#10; this.getFieldByEntriesArray('wirkstoffejson', blockIndex).setValue(JSON.stringify(selected));&#10;};&#10;&#10;const onFailure = function() {&#10; pluginRequestsDisabled = true;&#10; Ext.MessageBox.show({&#10; title: 'Hinweis',&#10; msg: 'Kein Zugriff auf ATC-Codes und Substanzen. Sie können Substanzen nur über "Aus Suchfeld hinzufügen" hinzufügen.',&#10; buttons: Ext.MessageBox.OKCANCEL&#10; });&#10;};&#10;&#10;const onSuccess = function(d) {&#10; available = d;&#10; const extData = available.map((item) => [item.code, item.name, item.system, item.version]);&#10; availableStore.loadData(extData);&#10;}&#10;&#10;const showDialog = function () {&#10; let selectedItemIndex = -1;&#10; let deselectedItemIndex = -1;&#10; let queryString = '';&#10;&#10; try {&#10; selected = JSON.parse(getFieldValue('wirkstoffejson', blockIndex));&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version]);&#10; selectedStore.loadData(extData);&#10; } catch (e) {&#10; selected = [];&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version]);&#10; selectedStore.loadData(extData);&#10; }&#10;&#10; const query = new Ext.form.field.Text({&#10; name: 'query',&#10; fieldLabel: 'Suche',&#10; padding: 8,&#10; listeners: {&#10; change: (f) => {&#10; queryString = f.value;&#10; request(f.value);&#10; if (f.value.length > 0) {&#10; Ext.getCmp('btnUnknownAgent').setDisabled(false);&#10; } else {&#10; Ext.getCmp('btnUnknownAgent').setDisabled(true);&#10; }&#10; }&#10; }&#10; });&#10;&#10; const gridColumns = [&#10; {header: 'Code', width: 72, sortable: false, dataIndex: 'code'},&#10; {header: 'Name', width: 300, sortable: false, dataIndex: 'name'},&#10; {header: 'System', width: 72, sortable: false, dataIndex: 'system'},&#10; {header: 'Version', width: 72, sortable: false, dataIndex: 'version'},&#10; ];&#10;&#10; const availableGrid = new Ext.grid.GridPanel({&#10; title: 'Verfügbar',&#10; store: availableStore,&#10; loadMask: true,&#10; border: true,&#10; columns: gridColumns,&#10; flex: 1,&#10; listeners: {&#10; itemclick: (dv, record, item, index) => {&#10; selectedItemIndex = index;&#10; Ext.getCmp('btnAddAgent').setDisabled(false);&#10; },&#10; itemdblclick: (dv, record, item, index) => {&#10; selectedItemIndex = -1&#10; addItem(available[index]);&#10; Ext.getCmp('btnAddAgent').setDisabled(true);&#10; }&#10; }&#10; });&#10;&#10; const selectedGrid = new Ext.grid.GridPanel({&#10; title: 'Ausgewählt',&#10; store: selectedStore,&#10; loadMask: true,&#10; border: true,&#10; columns: gridColumns,&#10; flex: 1,&#10; listeners: {&#10; itemclick: (dv, record, item, index) => {&#10; deselectedItemIndex = index;&#10; Ext.getCmp('btnRmAgent').setDisabled(false);&#10; },&#10; itemdblclick: (dv, record, item, index) => {&#10; deselectedItemIndex = -1&#10; removeItem(index);&#10; Ext.getCmp('btnRmAgent').setDisabled(true);&#10; }&#10; }&#10; });&#10;&#10; const gridLayout = Ext.create('Ext.Panel', {&#10; flex: 1,&#10; layout: {&#10; type: 'hbox',&#10; align: 'stretch'&#10; },&#10; items: [availableGrid, { xtype: 'splitter' }, selectedGrid]&#10; });&#10;&#10; const layout = Ext.create('Ext.Panel', {&#10; flex: 1,&#10; layout: {&#10; type: 'vbox',&#10; align: 'stretch'&#10; },&#10; items: [query, gridLayout]&#10; });&#10;&#10; Ext.create('Ext.window.Window', {&#10; title: 'Substanz auswählen',&#10; height: 600,&#10; width: 1080,&#10; layout: 'fit',&#10; items: [layout],&#10; buttons: [{&#10; id: 'btnAddAgent',&#10; text: 'Hinzufügen',&#10; disabled: true,&#10; handler: () => {&#10; addItem(available[selectedItemIndex]);&#10; Ext.getCmp('btnAddAgent').setDisabled(true);&#10; }&#10; }, {&#10; id: 'btnUnknownAgent',&#10; text: 'Aus Suchfeld hinzufügen',&#10; disabled: true,&#10; handler: () => {&#10; addItem({&#10; code: '',&#10; name: queryString,&#10; system: 'UNREGISTERED'&#10; });&#10; Ext.getCmp('btnUnknownAgent').setDisabled(true);&#10; }&#10; }, {&#10; id: 'btnRmAgent',&#10; text: 'Entfernen',&#10; disabled: true,&#10; handler: () => {&#10; removeItem(deselectedItemIndex);&#10; Ext.getCmp('btnRmAgent').setDisabled(true);&#10; }&#10; }, {&#10; text: 'Übernehmen',&#10; cls: 'onko-btn-cta',&#10; handler: () => {&#10; save();&#10; let win = Ext.WindowManager.getActive();&#10; if (win) {&#10; win.close();&#10; }&#10; }&#10; }]&#10; }).show();&#10;&#10; request('');&#10;};&#10;&#10;let buttonFieldFormInformation = findButtonFieldFormInformation(this);&#10;if (buttonFieldFormInformation && buttonFieldFormInformation.blockIndex) {&#10; blockIndex = buttonFieldFormInformation.blockIndex;&#10;}&#10;&#10;showDialog();</Code> + <Code>const availableStore = new Ext.data.ArrayStore({&#10; fields: [&#10; {name: 'code'},&#10; {name: 'name'},&#10; {name: 'system'},&#10; {name: 'version'},&#10; {name: 'synonyms'}&#10; ]&#10;});&#10;&#10;const selectedStore = new Ext.data.ArrayStore({&#10; fields: [&#10; {name: 'code'},&#10; {name: 'name'},&#10; {name: 'system'},&#10; {name: 'version'},&#10; {name: 'synonyms'}&#10; ]&#10;});&#10;&#10;let pluginRequestsDisabled = false;&#10;let available = [];&#10;let selected = [];&#10;let blockIndex = null;&#10;&#10;const findButtonFieldFormInformation = function(context) {&#10; const findElemId = function(elem) {&#10; if (elem.tagName === 'BODY') {&#10; return undefined;&#10; }&#10;&#10; if (elem.tagName === 'TABLE') {&#10; return elem.id;&#10; }&#10;&#10; return findElemId(elem.parentElement);&#10; }&#10;&#10; const formInfo = function(formItem, blockIndex = undefined) {&#10; if (formItem.xtype === 'buttonField') {&#10; return formInfo(formItem.ownerCt, formItem.blockIndex);&#10; }&#10;&#10; if (formItem.xtype === 'panel') {&#10; return formInfo(formItem.ownerCt, blockIndex);&#10; }&#10;&#10; if (formItem.xtype === 'subformField') {&#10; return {&#10; isSubform: true,&#10; formName: formItem.formName,&#10; subformFieldName: formItem.subformName,&#10; blockIndex: blockIndex&#10; };&#10; }&#10;&#10; if (formItem.xtype === 'form') {&#10; return {&#10; isSubform: false,&#10; };&#10; }&#10;&#10; console.warn('No information found!');&#10; return undefined;&#10; }&#10;&#10; if (context.genericEditForm && document.activeElement.tagName === 'BUTTON') {&#10; let elemId = findElemId(document.activeElement);&#10; if (elemId) {&#10; let formItem = context.genericEditForm.down('#'+elemId);&#10; if (formItem) {&#10; return formInfo(formItem);&#10; }&#10; }&#10; }&#10;&#10; return undefined;&#10;}&#10;&#10;const request = function (q) {&#10; if (pluginRequestsDisabled) return;&#10; executePluginMethod(&#10; 'AtcCodesHelper',&#10; 'query',&#10; {q: q, size: 25},&#10; function (response) {&#10; if (response.status.code < 0) {&#10; onFailure();&#10; return;&#10; }&#10; onSuccess(response.result);&#10; },&#10; false&#10; );&#10;};&#10;&#10;const addItem = function (item) {&#10; selected.push(item);&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10;};&#10;&#10;const removeItem = function (index) {&#10; selected.splice(index, 1);&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10;};&#10;&#10;const save = () => {&#10; const names = selected.map((item) => {&#10; return item.name;&#10; }).join("\n");&#10;&#10; this.getFieldByEntriesArray('wirkstoffe', blockIndex).setValue(names);&#10; this.getFieldByEntriesArray('wirkstoffejson', blockIndex).setValue(JSON.stringify(selected));&#10;};&#10;&#10;const onFailure = function() {&#10; pluginRequestsDisabled = true;&#10; Ext.MessageBox.show({&#10; title: 'Hinweis',&#10; msg: 'Kein Zugriff auf ATC-Codes und Substanzen. Sie können Substanzen nur über "Aus Suchfeld hinzufügen" hinzufügen.',&#10; buttons: Ext.MessageBox.OKCANCEL&#10; });&#10;};&#10;&#10;const onSuccess = function(d) {&#10; available = d;&#10; const extData = available.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; availableStore.loadData(extData);&#10;}&#10;&#10;const showDialog = function () {&#10; let selectedItemIndex = -1;&#10; let deselectedItemIndex = -1;&#10; let queryString = '';&#10;&#10; try {&#10; selected = JSON.parse(getFieldValue('wirkstoffejson', blockIndex));&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10; } catch (e) {&#10; selected = [];&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10; }&#10;&#10; const query = new Ext.form.field.Text({&#10; name: 'query',&#10; fieldLabel: 'Suche',&#10; padding: 8,&#10; listeners: {&#10; change: (f) => {&#10; queryString = f.value;&#10; request(f.value);&#10; if (f.value.length > 0) {&#10; Ext.getCmp('btnUnknownAgent').setDisabled(false);&#10; } else {&#10; Ext.getCmp('btnUnknownAgent').setDisabled(true);&#10; }&#10; }&#10; }&#10; });&#10;&#10; const gridColumns = [&#10; {header: 'Code', width: 72, sortable: false, dataIndex: 'code'},&#10; {header: 'Name', width: 200, sortable: false, dataIndex: 'name'},&#10; {header: 'System', width: 72, sortable: false, dataIndex: 'system'},&#10; {header: 'Version', width: 72, sortable: false, dataIndex: 'version'},&#10; {header: 'Synonyme', width: 300, sortable: false, dataIndex: 'synonyms'},&#10; ];&#10;&#10; const availableGrid = new Ext.grid.GridPanel({&#10; title: 'Verfügbar',&#10; store: availableStore,&#10; loadMask: true,&#10; border: true,&#10; columns: gridColumns,&#10; flex: 1,&#10; listeners: {&#10; itemclick: (dv, record, item, index) => {&#10; selectedItemIndex = index;&#10; Ext.getCmp('btnAddAgent').setDisabled(false);&#10; },&#10; itemdblclick: (dv, record, item, index) => {&#10; selectedItemIndex = -1&#10; addItem(available[index]);&#10; Ext.getCmp('btnAddAgent').setDisabled(true);&#10; }&#10; }&#10; });&#10;&#10; const selectedGrid = new Ext.grid.GridPanel({&#10; title: 'Ausgewählt',&#10; store: selectedStore,&#10; loadMask: true,&#10; border: true,&#10; columns: gridColumns,&#10; flex: 1,&#10; listeners: {&#10; itemclick: (dv, record, item, index) => {&#10; deselectedItemIndex = index;&#10; Ext.getCmp('btnRmAgent').setDisabled(false);&#10; },&#10; itemdblclick: (dv, record, item, index) => {&#10; deselectedItemIndex = -1&#10; removeItem(index);&#10; Ext.getCmp('btnRmAgent').setDisabled(true);&#10; }&#10; }&#10; });&#10;&#10; const gridLayout = Ext.create('Ext.Panel', {&#10; flex: 1,&#10; layout: {&#10; type: 'hbox',&#10; align: 'stretch'&#10; },&#10; items: [availableGrid, { xtype: 'splitter' }, selectedGrid]&#10; });&#10;&#10; const layout = Ext.create('Ext.Panel', {&#10; flex: 1,&#10; layout: {&#10; type: 'vbox',&#10; align: 'stretch'&#10; },&#10; items: [query, gridLayout]&#10; });&#10;&#10; Ext.create('Ext.window.Window', {&#10; title: 'Substanz auswählen',&#10; height: 600,&#10; width: 1200,&#10; layout: 'fit',&#10; items: [layout],&#10; buttons: [{&#10; id: 'btnAddAgent',&#10; text: 'Hinzufügen',&#10; disabled: true,&#10; handler: () => {&#10; addItem(available[selectedItemIndex]);&#10; Ext.getCmp('btnAddAgent').setDisabled(true);&#10; }&#10; }, {&#10; id: 'btnUnknownAgent',&#10; text: 'Aus Suchfeld hinzufügen',&#10; disabled: true,&#10; handler: () => {&#10; addItem({&#10; code: '',&#10; name: queryString,&#10; system: 'UNREGISTERED'&#10; });&#10; Ext.getCmp('btnUnknownAgent').setDisabled(true);&#10; }&#10; }, {&#10; id: 'btnRmAgent',&#10; text: 'Entfernen',&#10; disabled: true,&#10; handler: () => {&#10; removeItem(deselectedItemIndex);&#10; Ext.getCmp('btnRmAgent').setDisabled(true);&#10; }&#10; }, {&#10; text: 'Übernehmen',&#10; cls: 'onko-btn-cta',&#10; handler: () => {&#10; save();&#10; let win = Ext.WindowManager.getActive();&#10; if (win) {&#10; win.close();&#10; }&#10; }&#10; }]&#10; }).show();&#10;&#10; request('');&#10;};&#10;&#10;let buttonFieldFormInformation = findButtonFieldFormInformation(this);&#10;if (buttonFieldFormInformation && buttonFieldFormInformation.blockIndex) {&#10; blockIndex = buttonFieldFormInformation.blockIndex;&#10;}&#10;&#10;showDialog();</Code> <Valid>true</Valid> </Scripts> <Anzeige/> @@ -9736,7 +9736,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <SucheArt>0</SucheArt> <SID>20119</SID> <GUID>31b4c59b-b9eb-4383-a8b3-efff9777ab06</GUID> - <Revision>26</Revision> + <Revision>27</Revision> <vorherigeWerte>false</vorherigeWerte> <EinfuegenVerhindern>false</EinfuegenVerhindern> </Entry> @@ -9767,8 +9767,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>hatstudie = '1' or empfehlungskategorie <> 'systemisch'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -9846,8 +9846,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>empfehlungskategorie <> 'studie'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>studie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -11120,8 +11120,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>hatstudie = '1' or empfehlungskategorie <> 'systemisch'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -11195,8 +11195,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>hatstudie = '1' or empfehlungskategorie <> 'systemisch'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -11270,9 +11270,9 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>(hatstudie = '1' or empfehlungskategorie <> 'systemisch') and studienallejson <> '' and studienallejson <> '[]'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> - <RefEntry>studienallejson</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>studienallejson</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -11421,8 +11421,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>hatstudie = '1' or empfehlungskategorie <> 'systemisch'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -11496,8 +11496,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>hatstudie = '1' or empfehlungskategorie <> 'systemisch'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -11571,8 +11571,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>hatstudie = '1' or empfehlungskategorie <> 'systemisch'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>empfehlungskategorie</RefEntry> <RefEntry>hatstudie</RefEntry> + <RefEntry>empfehlungskategorie</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -12016,7 +12016,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> </ScriptBeimBearbeiten> <SID>20119</SID> <GUID>fdfe26b7-ef73-4a8a-88b2-4e5698b2921f</GUID> - <Revision>60</Revision> + <Revision>61</Revision> <SeitenzahlSichtbar>true</SeitenzahlSichtbar> <Entries> <Entry> @@ -13024,6 +13024,9 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Printable>false</Printable> <Position>2.0</Position> <Note/> + <Beschriftung1/> + <Beschriftung2/> + <WertAnzeigenPatmodul>false</WertAnzeigenPatmodul> <MultipleChoice>false</MultipleChoice> <DefaultValue/> <Alignment>0</Alignment> @@ -13037,11 +13040,12 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Datenart>BOTH</Datenart> <NotSpecified>false</NotSpecified> <Scripts> - <Code>var Merkmalskatalog = 'OS.Substanzen';&#10;var Spalten = 'code, shortdesc, synonyms, note';&#10;var fldWirkstoffe = 'Wirkstoffe';&#10;var fldWirkstoffCodes = 'WirkstoffCodes';&#10;&#10;var fgetMerkmalskatalog = function(result) {&#10;&#10; // Store für gridPanel formatieren und mit Daten aus result füllen&#10; var store = new Ext.data.ArrayStore({&#10; fields: [{name: 'code'}, {name: 'shortdesc'}, {name: 'synonyms'}, {name: 'note'}]&#10; });&#10; store.loadData(result.result);&#10;&#10; // store Filter setzen&#10; function setStoreFilter() {&#10; store.clearFilter();&#10; var StoreFilter = new Ext.util.Filter({&#10; filterFn: function(item){&#10; // bereits dokumentierte WirkstoffCodes aus store raus filtern&#10; if (Codes.includes(item.data.code)) return false;&#10;&#10; // wenn Checkbox Baskets anzeigen, dann alle nicht-Baskets raus filtern&#10; if (gridForm.getForm().findField('checkBaskets').getValue() && !item.data.shortdesc.includes('(Basket)')) return false;&#10;&#10; // auf Suchfeld filtern&#10; var searchtest, shortdescMatch, codeMatch, synonymsMatch;&#10; var escapere = Ext.String.escapeRegex;&#10; searchtest = new RegExp(escapere(gridForm.getForm().findField('searchfield').getValue()), 'i');&#10; shortdescMatch = searchtest.test(item.data.shortdesc);&#10; codeMatch = searchtest.test(item.data.code);&#10; synonymsMatch = searchtest.test(item.data.synonyms);&#10; if(codeMatch || shortdescMatch || synonymsMatch) {&#10; return true;&#10; }&#10; else {&#10; return false;&#10; }&#10; }&#10; });&#10; store.filter(StoreFilter);&#10; };&#10;&#10; // bereits dokumentierte Wirkstoffe und Codes in DataArray einlesen&#10; var DataArray = [];&#10; if (getFieldValue(fldWirkstoffCodes)) {&#10; var obj = JSON.parse(getFieldValue(fldWirkstoffCodes));&#10; for(var i in obj) {&#10; var recordArray = [&#10; obj[i].code,&#10; obj[i].substance&#10; ];&#10; DataArray.push(recordArray);&#10; }&#10; }&#10;&#10; // Liste der bereits dokumentierten Wirkstoffe und Codes erstellen&#10; // Substanzen aus Auswahlfeld schreiben&#10; var Codes;&#10; var Substances;&#10; function setData() {&#10; Codes = '';&#10; Substances = '';&#10; DataArray.forEach(function(Data){&#10; Codes = Codes + Data[0] + ',';&#10; Substances = Substances + Data[1] + ', ';&#10; });&#10; }&#10;&#10; setData();&#10;&#10; var gridForm = Ext.create('Ext.form.Panel', {&#10; frame: true,&#10; id: 'gridForm',&#10; bodyPadding: 5,&#10; width: 800,&#10; fieldDefaults: {&#10; labelAlign: 'left',&#10; msgTarget: 'side'&#10; },&#10; items: [{&#10; xtype: 'fieldcontainer',&#10; layout: 'hbox',&#10; height: 35,&#10; bodyPadding: 5,&#10; items: [{&#10; xtype: 'textfield',&#10; name: 'searchfield',&#10; fieldLabel: 'Suche:',&#10; listeners: {&#10; change: function( fld, newValue, oldValue, opts ) {&#10; setStoreFilter();&#10; } &#10; }&#10; }, {&#10; xtype: 'splitter'&#10; }, {&#10; xtype: 'checkbox',&#10; name: 'checkBaskets',&#10; fieldLabel: 'nur Baskets',&#10; listeners: {&#10; change:function(c) {&#10; setStoreFilter();&#10; }&#10; }&#10; }]&#10; }, {&#10; xtype: 'gridpanel',&#10; id: 'gridPanel',&#10; store: store,&#10; height: 220,&#10; columns: [{&#10; text: 'Kodierung',&#10; width: 90,&#10; sortable: false,&#10; dataIndex: 'code'&#10; },{&#10; text: 'Substanz',&#10; flex: 3,&#10; sortable: false,&#10; dataIndex: 'shortdesc'&#10; },{&#10; text: 'Synonyme',&#10; flex: 3,&#10; sortable: false,&#10; dataIndex: 'synonyms'&#10; },{&#10; text: 'Notes',&#10; flex: 3,&#10; sortable: false,&#10; dataIndex: 'note'&#10; }&#10; ],&#10; listeners: {&#10; // übernimmt die per Doppelklick ausgewählte Substanz in DataArray&#10; itemdblclick: function (dv, record, item, index, e) {&#10; // DataArray um Auswahl erweitern&#10; var recordArray = [&#10; record.get('code'),&#10; record.get('shortdesc')&#10; ];&#10; DataArray.push(recordArray);&#10; setData();&#10; gridForm.getForm().findField('Auswahl').setValue(Substances.substring(0, Substances.length - 2));&#10; setStoreFilter();&#10; gridForm.getForm().findField('searchfield').setValue('');&#10; }&#10; }&#10; },{&#10; xtype: 'fieldcontainer',&#10; layout: 'hbox',&#10; height: 50,&#10; bodyPadding: 10,&#10; items: [{&#10; width: 800,&#10; xtype: 'textareafield',&#10; grow: true,&#10; name: 'Auswahl',&#10; fieldLabel: 'Ausgewählte Substanzen',&#10; readOnly:true,&#10; anchor: '100%',&#10; listeners: {&#10; afterrender: function() {&#10; setStoreFilter();&#10; setData();&#10; gridForm.getForm().findField('Auswahl').setValue(Substances.substring(0, Substances.length - 2));&#10; }&#10; }&#10; }]&#10; }]&#10; });&#10;&#10; Ext.create('Ext.window.Window', {&#10; title: 'Substanz auswählen',&#10; height: 400,&#10; width: 800,&#10; layout: 'fit',&#10; items: [gridForm],&#10; buttons: [{&#10; text: 'Übernehmen',&#10; cls: 'onko-btn-cta',&#10; handler: function () {&#10; // erstellt ein JSON-Objekt mit den ausgewählten Substanzen und schreibt es in das Formular&#10; var Codes = JSON.stringify(DataArray.map(function (CodesArray) {&#10; // prüfen, ob der Code aus dem ATC stammt&#10; var System = '';&#10; var re = new RegExp("[A-V]0[1-9][A-Z]{2}");&#10; if (re.test(CodesArray[0])) {&#10; System = 'ATC';&#10; } else {&#10; System = 'other';&#10; }&#10; return { system: System, code: CodesArray[0], substance: CodesArray[1] };&#10; }));&#10; setFieldValue(fldWirkstoffCodes, Codes);&#10;&#10; // erstellt einen kommaseparierten String für das Anzeigefeld und schreibt es in das Formular&#10; var Substances = "";&#10; DataArray.forEach(function(Substance){&#10; Substances = Substances + Substance[1] + ', ';&#10; });&#10; setFieldValue(fldWirkstoffe, Substances.substring(0, Substances.length - 2));&#10;&#10; this.up('window').close();&#10; }&#10; }, {&#10; text: 'Löschen',&#10; handler: function () {&#10; // alle ausgewählten substanzen löschen&#10; gridForm.getForm().findField('Auswahl').setValue('');&#10; setFieldValue(fldWirkstoffCodes, '');&#10; setFieldValue(fldWirkstoffe, ''); &#10; DataArray = [];&#10; store.clearFilter();&#10; }&#10; }, {&#10; text: 'Abbrechen',&#10; handler: function () {&#10; this.up('window').close();&#10; }&#10; }]&#10; }).show();&#10;};&#10;&#10;// Merkmalskatalog über Plugin laden und die Funktion fgetMerkmalskatalog aufrufen&#10;executePluginMethod('Merkmalskatalog', 'getMerkmalskatalog', {'Merkmalskatalog': Merkmalskatalog, 'Spalten': Spalten}, fgetMerkmalskatalog, false);</Code> + <Code>const availableStore = new Ext.data.ArrayStore({&#10; fields: [&#10; {name: 'code'},&#10; {name: 'name'},&#10; {name: 'system'},&#10; {name: 'version'},&#10; {name: 'synonyms'}&#10; ]&#10;});&#10;&#10;const selectedStore = new Ext.data.ArrayStore({&#10; fields: [&#10; {name: 'code'},&#10; {name: 'name'},&#10; {name: 'system'},&#10; {name: 'version'},&#10; {name: 'synonyms'}&#10; ]&#10;});&#10;&#10;let pluginRequestsDisabled = false;&#10;let available = [];&#10;let selected = [];&#10;let blockIndex = null;&#10;&#10;const findButtonFieldFormInformation = function(context) {&#10; const findElemId = function(elem) {&#10; if (elem.tagName === 'BODY') {&#10; return undefined;&#10; }&#10;&#10; if (elem.tagName === 'TABLE') {&#10; return elem.id;&#10; }&#10;&#10; return findElemId(elem.parentElement);&#10; }&#10;&#10; const formInfo = function(formItem, blockIndex = undefined) {&#10; if (formItem.blockIndex) {&#10; return {&#10; isSubform: true,&#10; formName: formItem.blockName,&#10; subformFieldName: formItem.dataFormEntryName,&#10; blockIndex: formItem.blockIndex&#10; };&#10; }&#10;&#10; if (formItem.xtype === 'buttonField') {&#10; return formInfo(formItem.ownerCt, formItem.blockIndex);&#10; }&#10;&#10; if (formItem.xtype === 'panel') {&#10; return formInfo(formItem.ownerCt, blockIndex);&#10; }&#10;&#10; if (formItem.xtype === 'subformField') {&#10; return {&#10; isSubform: true,&#10; formName: formItem.formName,&#10; subformFieldName: formItem.subformName,&#10; blockIndex: blockIndex&#10; };&#10; }&#10;&#10; if (formItem.xtype === 'form') {&#10; return {&#10; isSubform: false,&#10; };&#10; }&#10;&#10; console.warn('No information found!');&#10; return undefined;&#10; }&#10;&#10; if (context.genericEditForm && document.activeElement.tagName === 'BUTTON') {&#10; let elemId = findElemId(document.activeElement);&#10; if (elemId) {&#10; let formItem = context.genericEditForm.down('#'+elemId);&#10; if (formItem) {&#10; return formInfo(formItem);&#10; }&#10; }&#10; }&#10;&#10; return undefined;&#10;}&#10;&#10;const request = function (q) {&#10; if (pluginRequestsDisabled) return;&#10; executePluginMethod(&#10; 'AtcCodesHelper',&#10; 'query',&#10; {q: q, size: 25},&#10; function (response) {&#10; if (response.status.code < 0) {&#10; onFailure();&#10; return;&#10; }&#10; onSuccess(response.result);&#10; },&#10; false&#10; );&#10;};&#10;&#10;const addItem = function (item) {&#10; selected.push(item);&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10;};&#10;&#10;const removeItem = function (index) {&#10; selected.splice(index, 1);&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10;};&#10;&#10;const save = () => {&#10; const names = selected.map((item) => {&#10; return item.name;&#10; }).join(", ");&#10; //this.getFieldByEntriesArray('wirkstoffe', blockIndex).setValue(names);&#10; //this.getFieldByEntriesArray('wirkstoffejson', blockIndex).setValue(JSON.stringify(selected));&#10; this.getFieldByEntriesArray('Wirkstoffe', blockIndex).setValue(names);&#10; this.getFieldByEntriesArray('WirkstoffCodes', blockIndex).setValue(JSON.stringify(selected));&#10;};&#10;&#10;const onFailure = function() {&#10; pluginRequestsDisabled = true;&#10; Ext.MessageBox.show({&#10; title: 'Hinweis',&#10; msg: 'Kein Zugriff auf ATC-Codes und Substanzen. Sie können Substanzen nur über "Aus Suchfeld hinzufügen" hinzufügen.',&#10; buttons: Ext.MessageBox.OKCANCEL&#10; });&#10;};&#10;&#10;const onSuccess = function(d) {&#10; available = d;&#10; // Keep since Plugin uses 'name'&#10; const extData = available.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; availableStore.loadData(extData);&#10;}&#10;&#10;const showDialog = function () {&#10; let selectedItemIndex = -1;&#10; let deselectedItemIndex = -1;&#10; let queryString = '';&#10;&#10; try {&#10; selected = JSON.parse(getFieldValue('WirkstoffCodes', blockIndex)).map((item) => {&#10; let name =item.substance;&#10; if (name === undefined || name === null) {&#10; name = item.name;&#10; }&#10; return {&#10; code: item.code,&#10; name: name,&#10; system: item.system,&#10; version: item.version,&#10; synonyms: item.synonyms,&#10; }&#10; });&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10; } catch (e) {&#10; selected = [];&#10; const extData = selected.map((item) => [item.code, item.name, item.system, item.version, item.synonyms]);&#10; selectedStore.loadData(extData);&#10; }&#10;&#10; const query = new Ext.form.field.Text({&#10; name: 'query',&#10; fieldLabel: 'Suche',&#10; padding: 8,&#10; listeners: {&#10; change: (f) => {&#10; queryString = f.value;&#10; request(f.value);&#10; if (f.value.length > 0) {&#10; Ext.getCmp('btnUnknownAgent').setDisabled(false);&#10; } else {&#10; Ext.getCmp('btnUnknownAgent').setDisabled(true);&#10; }&#10; }&#10; }&#10; });&#10;&#10; const gridColumns = [&#10; {header: 'Code', width: 72, sortable: false, dataIndex: 'code'},&#10; {header: 'Name', width: 200, sortable: false, dataIndex: 'name'},&#10; {header: 'System', width: 72, sortable: false, dataIndex: 'system'},&#10; {header: 'Version', width: 72, sortable: false, dataIndex: 'version'},&#10; {header: 'Synonyme', width: 300, sortable: false, dataIndex: 'synonyms'},&#10; ];&#10;&#10; const availableGrid = new Ext.grid.GridPanel({&#10; title: 'Verfügbar',&#10; store: availableStore,&#10; loadMask: true,&#10; border: true,&#10; columns: gridColumns,&#10; flex: 1,&#10; listeners: {&#10; itemclick: (dv, record, item, index) => {&#10; selectedItemIndex = index;&#10; Ext.getCmp('btnAddAgent').setDisabled(false);&#10; },&#10; itemdblclick: (dv, record, item, index) => {&#10; selectedItemIndex = -1&#10; addItem(available[index]);&#10; Ext.getCmp('btnAddAgent').setDisabled(true);&#10; }&#10; }&#10; });&#10;&#10; const selectedGrid = new Ext.grid.GridPanel({&#10; title: 'Ausgewählt',&#10; store: selectedStore,&#10; loadMask: true,&#10; border: true,&#10; columns: gridColumns,&#10; flex: 1,&#10; listeners: {&#10; itemclick: (dv, record, item, index) => {&#10; deselectedItemIndex = index;&#10; Ext.getCmp('btnRmAgent').setDisabled(false);&#10; },&#10; itemdblclick: (dv, record, item, index) => {&#10; deselectedItemIndex = -1&#10; removeItem(index);&#10; Ext.getCmp('btnRmAgent').setDisabled(true);&#10; }&#10; }&#10; });&#10;&#10; const gridLayout = Ext.create('Ext.Panel', {&#10; flex: 1,&#10; layout: {&#10; type: 'hbox',&#10; align: 'stretch'&#10; },&#10; items: [availableGrid, { xtype: 'splitter' }, selectedGrid]&#10; });&#10;&#10; const layout = Ext.create('Ext.Panel', {&#10; flex: 1,&#10; layout: {&#10; type: 'vbox',&#10; align: 'stretch'&#10; },&#10; items: [query, gridLayout]&#10; });&#10;&#10; Ext.create('Ext.window.Window', {&#10; title: 'Substanz auswählen',&#10; height: 600,&#10; width: 1200,&#10; layout: 'fit',&#10; items: [layout],&#10; buttons: [{&#10; id: 'btnAddAgent',&#10; text: 'Hinzufügen',&#10; disabled: true,&#10; handler: () => {&#10; addItem(available[selectedItemIndex]);&#10; Ext.getCmp('btnAddAgent').setDisabled(true);&#10; }&#10; }, {&#10; id: 'btnUnknownAgent',&#10; text: 'Aus Suchfeld hinzufügen',&#10; disabled: true,&#10; handler: () => {&#10; addItem({&#10; code: '',&#10; name: queryString,&#10; system: 'UNREGISTERED'&#10; });&#10; Ext.getCmp('btnUnknownAgent').setDisabled(true);&#10; }&#10; }, {&#10; id: 'btnRmAgent',&#10; text: 'Entfernen',&#10; disabled: true,&#10; handler: () => {&#10; removeItem(deselectedItemIndex);&#10; Ext.getCmp('btnRmAgent').setDisabled(true);&#10; }&#10; }, {&#10; text: 'Übernehmen',&#10; cls: 'onko-btn-cta',&#10; handler: () => {&#10; save();&#10; let win = Ext.WindowManager.getActive();&#10; if (win) {&#10; win.close();&#10; }&#10; }&#10; }]&#10; }).show();&#10;&#10; request('');&#10;};&#10;&#10;let buttonFieldFormInformation = findButtonFieldFormInformation(this);&#10;if (buttonFieldFormInformation && buttonFieldFormInformation.blockIndex) {&#10; blockIndex = buttonFieldFormInformation.blockIndex;&#10;}&#10;&#10;showDialog();</Code> <Valid>true</Valid> </Scripts> <Anzeige/> <AnzeigeAuswahl/> + <Druckvorlage/> <Speichern>1</Speichern> <LeerAusblenden>true</LeerAusblenden> <GeschlossenAnzeigen>false</GeschlossenAnzeigen> @@ -13064,7 +13068,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Resizable>false</Resizable> <Verschluesselt>false</Verschluesselt> <MemoArt>1</MemoArt> - <DateValidFrom>0</DateValidFrom> + <DateValidFrom>12408</DateValidFrom> <DateValidTo>0</DateValidTo> <DateValidFuture>true</DateValidFuture> <Titel/> @@ -13077,7 +13081,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <SucheArt>0</SucheArt> <SID>20119</SID> <GUID>cde2708d-5d4a-4c38-aa7a-775d16acde3e</GUID> - <Revision>6</Revision> + <Revision>7</Revision> <vorherigeWerte>false</vorherigeWerte> <EinfuegenVerhindern>false</EinfuegenVerhindern> </Entry> @@ -13360,7 +13364,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <hatUnterformulare>false</hatUnterformulare> <SID>20119</SID> <GUID>06847050-ff8f-46c4-87b8-9584c0cef990</GUID> - <Revision>272</Revision> + <Revision>273</Revision> </ReferencedDataForm> </DataFormReferences> </Entry> @@ -17434,7 +17438,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <hatUnterformulare>false</hatUnterformulare> <SID>20119</SID> <GUID>06847050-ff8f-46c4-87b8-9584c0cef990</GUID> - <Revision>272</Revision> + <Revision>273</Revision> </ReferencedDataForm> </DataFormReferences> </Entry> @@ -17930,8 +17934,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>AntragKostenuebernahme = '1'&#10;and&#10;GrundAblehnungKosten = 'w'</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>GrundAblehnungKosten</RefEntry> <RefEntry>AntragKostenuebernahme</RefEntry> + <RefEntry>GrundAblehnungKosten</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -19411,7 +19415,7 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <hatUnterformulare>false</hatUnterformulare> <SID>20119</SID> <GUID>06847050-ff8f-46c4-87b8-9584c0cef990</GUID> - <Revision>272</Revision> + <Revision>273</Revision> </ReferencedDataForm> </DataFormReferences> </Entry> @@ -23747,8 +23751,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>not ICD10.getCategories()->includes('Gehirn') and not(isEmptyString(TumorgradingAlt))</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>ICD10</RefEntry> <RefEntry>TumorgradingAlt</RefEntry> + <RefEntry>ICD10</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> @@ -24029,8 +24033,8 @@ Gemäß DNPM-Datenmodell 2.1</Anmerkung> <Condition>ICD10.getCategories()->includes('Gehirn') and not(isEmptyString(WHOGradAlt))</Condition> <Valid>true</Valid> <RefEntries> - <RefEntry>ICD10</RefEntry> <RefEntry>WHOGradAlt</RefEntry> + <RefEntry>ICD10</RefEntry> </RefEntries> </Filter> <NotSpecified>false</NotSpecified> |
