[text] patient-collection.component.html

Viewer

copydownloadembedprintName: patient-collection.component.html
  1. <div id="patientCollection">
  2.   <div id="patientCollectionBody">
  3.     <dx-scroll-view #scrollView>
  4.       <div id="pcTitle" style="padding-top: 30px; padding-left: 40px; font-size: 20px; height: 35px">
  5.         <div style="float: left; width: calc(100% - 170px)">
  6.           <div style="float: left; padding-right: 5px;">
  7.             {{pageTitle}}
  8.           </div>
  9.           <div id="vip"
  10.             style="float: left; min-width: 80px; width: calc(100% - 250px); color: #b1000a; font-weight: bold">
  11.             VIP 
  12.             <dx-check-box [(value)]="patient.vip" [disabled]="!canEdit"></dx-check-box>
  13.           </div>
  14.         </div>
  15.         <div *ngIf="!patient.status || patient.status === 'Created' || patient.status === 'Accepted'"
  16.           style="float: left; width: 170px">
  17.           <dx-button icon="close" text="Stornieren" (onClick)="cancelPatient($event)"></dx-button>
  18.         </div>
  19.       </div>
  20.       <div id="pcFields" style="padding-left: 40px; padding-right: 30px">
  21.         <div class="row">
  22.  
  23.           <!-- client data block -->
  24.           <div class="column">
  25.             <table style="table-layout: fixed; width: 90%">
  26.               <tr>
  27.                 <td>
  28.                   <span style="color: #b1000a">Nachname*</span>
  29.                   <dx-text-box #lastnameInput placeholder="Nachname" [(value)]="patient.lastname" [disabled]="!canEdit"
  30.                     stylingMode="underlined">
  31.                     <dx-validator>
  32.                       <dxi-validation-rule type="required" message="Bitte geben Sie den Nachnamen ein">
  33.                       </dxi-validation-rule>
  34.                     </dx-validator>
  35.                   </dx-text-box>
  36.                 </td>
  37.               </tr>
  38.             </table>
  39.           </div>
  40.           <div class="column">
  41.             <table style="table-layout: fixed; width: 90%">
  42.               <tr>
  43.                 <td>
  44.                   <span style="color: #b1000a">Vorname*</span>
  45.                   <dx-text-box placeholder="Vorname" [(value)]="patient.firstname" [disabled]="!canEdit"
  46.                     stylingMode="underlined">
  47.                     <dx-validator>
  48.                       <dxi-validation-rule type="required" message="Bitte geben Sie den Vornamen ein">
  49.                       </dxi-validation-rule>
  50.                     </dx-validator>
  51.                   </dx-text-box>
  52.                 </td>
  53.               </tr>
  54.             </table>
  55.           </div>
  56.           <div class="column">
  57.             <table style="table-layout: fixed; width: 90%">
  58.               <tr>
  59.                 <td>
  60.                   <span>Geburtsdatum</span>
  61.                   <dx-date-box #birthdateInput placeholder="Geburtsdatum" [opened]="false" type="date"
  62.                     [pickerType]="pickerType" [max]="maxDate" [(value)]="patient.birthdate" displayFormat="dd.MM.yyyy"
  63.                     invalidDateMessage="Bitte geben Sie ein gültiges Datum ein" useMaskBehavior="true"
  64.                     [disabled]="!canEdit" (onFocusIn)="onBirthdateOpened($event)" stylingMode="underlined">
  65.                     <!--<dx-validator>
  66.                       <dxi-validation-rule type="required" message="Bitte geben Sie das Geburtsdatum ein">
  67.                       </dxi-validation-rule>
  68.                     </dx-validator>-->
  69.                   </dx-date-box>
  70.                 </td>
  71.               </tr>
  72.             </table>
  73.           </div>
  74.           <div class="column" style="height: 70px; margin-top: 10px">
  75.             <table style="table-layout: fixed; width: 90%">
  76.               <tr>
  77.                 <td>
  78.                   <div
  79.                     style="float: left; width: calc(100% - 75px); height: 30px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  80.                     SVNR / SV-Träger</div>
  81.                   <div style="float: right; width: 75px; height: 30px; line-height: 30x; vertical-align: top">
  82.                     <dx-button id="vdasButton" icon="search" text="VDAS" (onClick)="vdas($event)" [disabled]="!canEdit"
  83.                       height="30">
  84.                       <div *dxTemplate="let data of 'content'" class="vdasStyle">
  85.                         <dx-load-indicator class='button-indicator' [visible]="isVDASLoading">
  86.                         </dx-load-indicator>
  87.                         <span class='dx-button-text'>VDAS</span>
  88.                       </div>
  89.                     </dx-button>
  90.                   </div>
  91.                   <div style="float: left; width: 40%">
  92.                     <dx-text-box #ssnInput placeholder="SVNRTTMMJJ" [(value)]="patient.ssn" (onEnterKey)="vdas($event)"
  93.                       [disabled]="!canEdit" stylingMode="underlined">
  94.                     </dx-text-box>
  95.                   </div>
  96.                   <div style="float: left; width: 58%; padding-left: 3px">
  97.                     <dx-select-box [dataSource]="socialInsuranceCarriers" displayExpr="insuranceInstituteName"
  98.                       valueExpr="code" [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith"
  99.                       placeholder="SV-Träger" noDataText="" [(value)]="patient.svtCode" [disabled]="!canEdit"
  100.                       stylingMode="underlined">
  101.                       <dx-validator>
  102.                         <dxi-validation-rule type="required" message="Bitte geben Sie den SV-Träger an">
  103.                         </dxi-validation-rule>
  104.                       </dx-validator>
  105.                     </dx-select-box>
  106.                   </div>
  107.                 </td>
  108.               </tr>
  109.             </table>
  110.           </div>
  111.           <div class="column">
  112.             <table style="table-layout: fixed; width: 90%">
  113.               <tr>
  114.                 <td>
  115.                   <span style="color: #b1000a">Geschlecht*</span>
  116.                   <dx-select-box #sexSelectBox [dataSource]="sexEntries" displayExpr="text" valueExpr="name"
  117.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" placeholder="Geschlecht"
  118.                     noDataText="" [(value)]="patient.sex" [disabled]="!canEdit" stylingMode="underlined">
  119.                     <dx-validator>
  120.                       <dxi-validation-rule type="required" message="Bitte geben Sie das Geschlecht an">
  121.                       </dxi-validation-rule>
  122.                     </dx-validator>
  123.                   </dx-select-box>
  124.                 </td>
  125.               </tr>
  126.             </table>
  127.           </div>
  128.           <div class="column" style="height: 70px; margin-top: 10px">
  129.             <table style="table-layout: fixed; width: 90%">
  130.               <tr>
  131.                 <td>
  132.                   <div
  133.                     style="float: left; width: calc(100% - 100px); height: 30px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  134.                     <span style="color: #b1000a">Telefon* / Email</span>
  135.                   </div>
  136.                   <div id="smsCheckBox" style="float: right; width: 100px; height: 30px; text-align: right">
  137.                     <span style="font-size: 14px">SMS-Ben.</span> 
  138.                     <dx-check-box [(value)]="patient.notification" [disabled]="!canEdit"></dx-check-box>
  139.                   </div>
  140.                   <div style="float: left; width: calc(50% - 24px);">
  141.                     <dx-text-box placeholder="+43xxxxxxxxx" [(value)]="patient.phone" [disabled]="!canEdit"
  142.                       stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  143.                       <dx-validator>
  144.                         <dxi-validation-rule type="required" message="Bitte geben Sie eine Telefonnummer an">
  145.                         </dxi-validation-rule>
  146.                         <dxi-validation-rule type="custom" [validationCallback]="phoneComparison" [reevaluate]="true"
  147.                           message="Bitte geben Sie eine Telefonnummer an"></dxi-validation-rule>
  148.                       </dx-validator>
  149.                     </dx-text-box>
  150.                   </div>
  151.                   <div style="float: left; width: 44px; padding-left: 2px; padding-right: 2px; text-align: center"
  152.                     title="Anrufen">
  153.                     <a href="tel:{{patient.phone}}" (click)="onCall($event, patient.phone)">
  154.                       <dx-button icon="tel"></dx-button>
  155.                     </a>
  156.                   </div>
  157.                   <div style="float: left; width: calc(50% - 24px)">
  158.                     <dx-text-box placeholder="Email" [(value)]="patient.eMail" maxLength="100" [disabled]="!canEdit"
  159.                       stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  160.                       <dx-validator>
  161.                         <dxi-validation-rule type="email" message="Bitte geben Sie eine gültige Email-Adresse ein">
  162.                         </dxi-validation-rule>
  163.                       </dx-validator>
  164.                     </dx-text-box>
  165.                   </div>
  166.                 </td>
  167.               </tr>
  168.             </table>
  169.           </div>
  170.           <div class="columnAddress">
  171.             <table style="table-layout: fixed; width: 90%">
  172.               <tr>
  173.                 <td>
  174.                   <div style="color: #b1000a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  175.                     Meldeadresse (Hauptwohnsitz)*</div>
  176.                   <div style="float: left; width: 100%">
  177.                     <dx-text-box placeholder="<Straße> <Hausnummer>" [(value)]="patient.addressStreet"
  178.                       [disabled]="!canEdit" stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  179.                       <dx-validator>
  180.                         <dxi-validation-rule type="required"
  181.                           message="Bitte geben Sie die Meldeadresse (Hauptwohnsitz) ein">
  182.                         </dxi-validation-rule>
  183.                       </dx-validator>
  184.                     </dx-text-box>
  185.                   </div>
  186.                   <div style="float: left; width: 30%">
  187.                     <dx-text-box placeholder="<PLZ>" [(value)]="patient.addressZip" [disabled]="!canEdit"
  188.                       stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  189.                       <dx-validator>
  190.                         <dxi-validation-rule type="required"
  191.                           message="Bitte geben Sie die Meldeadresse (Hauptwohnsitz) ein">
  192.                         </dxi-validation-rule>
  193.                       </dx-validator>
  194.                     </dx-text-box>
  195.                   </div>
  196.                   <div style="float: left; width: 70%">
  197.                     <dx-text-box placeholder="<Ort>" [(value)]="patient.addressCity" [disabled]="!canEdit"
  198.                       stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  199.                       <dx-validator>
  200.                         <dxi-validation-rule type="required"
  201.                           message="Bitte geben Sie die Meldeadresse (Hauptwohnsitz) ein">
  202.                         </dxi-validation-rule>
  203.                       </dx-validator>
  204.                     </dx-text-box>
  205.                   </div>
  206.                 </td>
  207.               </tr>
  208.             </table>
  209.           </div>
  210.           <div class="columnAddress">
  211.             <table style="table-layout: fixed; width: 90%">
  212.               <tr>
  213.                 <td>
  214.                   <div
  215.                     style="float: left; width: calc(100% - 40px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  216.                     Aktueller Wohnort / Aufenthaltsort</div>
  217.                   <div style="float: left; width: calc(100% - 40px)">
  218.                     <dx-text-box placeholder="<Straße> <Hausnummer>" [(value)]="patient.secondaryAddressStreet"
  219.                       [disabled]="!canEdit" stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  220.                     </dx-text-box>
  221.                   </div>
  222.                   <div style="float: left; width: 40px; text-align: right" title="Meldeadresse übernehmen">
  223.                     <dx-button icon="copy" (onClick)="takeAddress($event)" [disabled]="!canEdit"></dx-button>
  224.                   </div>
  225.                   <div style="float: left; width: 30%">
  226.                     <dx-text-box placeholder="<PLZ>" [(value)]="patient.secondaryAddressZip" [disabled]="!canEdit"
  227.                       stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  228.                     </dx-text-box>
  229.                   </div>
  230.                   <div style="float: left; width: 70%">
  231.                     <dx-text-box placeholder="<Ort>" [(value)]="patient.secondaryAddressCity" [disabled]="!canEdit"
  232.                       stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  233.                     </dx-text-box>
  234.                   </div>
  235.                 </td>
  236.               </tr>
  237.             </table>
  238.           </div>
  239.  
  240.           <div class="column">
  241.             <table style="table-layout: fixed; width: 90%">
  242.               <tr>
  243.                 <td>
  244.                   Behörde<dx-select-box #authoritySelectBox [dataSource]="authorityEntries" displayExpr="name"
  245.                     valueExpr="id" [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith"
  246.                     placeholder="Behörde" noDataText="" [(value)]="patient.authorityId" [disabled]="!canEdit"
  247.                     stylingMode="underlined" (onValueChanged)="onAuthorityChanged($event)">
  248.                   </dx-select-box>
  249.                 </td>
  250.               </tr>
  251.             </table>
  252.           </div>
  253.           <div class="column">
  254.             <table style="table-layout: fixed; width: 90%">
  255.               <tr>
  256.                 <td>
  257.                   <span style="color: #b1000a">Staatsbürgerschaft*</span>
  258.                   <dx-select-box [dataSource]="countryCodeEntries" displayExpr="displayName" valueExpr="code"
  259.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" placeholder="Staatsbürgerschaft"
  260.                     noDataText="" [(value)]="patient.nationality" [disabled]="!canEdit" stylingMode="underlined"
  261.                     (onFocusIn)="onFocusIn($event)">
  262.                     <dx-validator>
  263.                       <dxi-validation-rule type="required" message="Bitte geben Sie die Staatsbürgerschaft an">
  264.                       </dxi-validation-rule>
  265.                     </dx-validator>
  266.                   </dx-select-box>
  267.                 </td>
  268.               </tr>
  269.             </table>
  270.           </div>
  271.           <div class="column">
  272.             <table style="table-layout: fixed; width: 90%">
  273.               <tr>
  274.                 <td>
  275.                   Hausarzt<dx-autocomplete placeholder="Hausarzt" [(value)]="patient.familyDoctor"
  276.                     [dataSource]="doctors" valueExpr="fullname" [showClearButton]="false" [disabled]="!canEdit"
  277.                     stylingMode="underlined" noDataText="" (onFocusOut)="clearDoctors()"
  278.                     (onValueChanged)="onDoctorChanged($event)" (onItemClick)="onDoctorClick($event)"
  279.                     (onFocusIn)="onFocusIn($event)">
  280.                     <div *dxTemplate="let data of 'item'">
  281.                       {{data?.fullname}} ({{data?.city}})
  282.                     </div>
  283.                   </dx-autocomplete>
  284.                 </td>
  285.               </tr>
  286.             </table>
  287.           </div>
  288.           <div class="column">
  289.             <table style="table-layout: fixed; width: 90%;">
  290.               <tr>
  291.                 <td style="border-bottom: 1px solid #ddd; height: 54px">Befundüberm. an Hausarzt  
  292.                   <dx-check-box [(value)]="patient.dataTransferAccepted" [disabled]="!canEdit"></dx-check-box>
  293.                 </td>
  294.               </tr>
  295.             </table>
  296.           </div>
  297.           <div class="column">
  298.             <table style="table-layout: fixed; width: 90%">
  299.               <tr>
  300.                 <td style="border-bottom: 1px solid #ddd; height: 54px">
  301.                   Drive-In möglich  <dx-check-box [(value)]="patient.isDriveInPossible" [disabled]="!canEdit">
  302.                   </dx-check-box>
  303.                 </td>
  304.               </tr>
  305.             </table>
  306.           </div>
  307.           <div class="column">
  308.             <table style="table-layout: fixed; width: 90%">
  309.               <tr>
  310.                 <td>
  311.                   Organisation<dx-autocomplete placeholder="Organisation" [(value)]="patient.organisationText"
  312.                     [dataSource]="organisations" valueExpr="text" [showClearButton]="false" [disabled]="!canEdit"
  313.                     stylingMode="underlined" noDataText="" (onFocusOut)="clearOrganisations()"
  314.                     (onValueChanged)="onOrganisationChanged($event)" (onItemClick)="onOrganisationClick($event)"
  315.                     (onFocusIn)="onFocusIn($event)">
  316.                   </dx-autocomplete>
  317.                 </td>
  318.               </tr>
  319.             </table>
  320.           </div>
  321.           <div class="columnMax" style="margin-top: 20px; padding-top: 0px">
  322.             <table style="table-layout: fixed; width: 95%">
  323.               <tr>
  324.                 <td>
  325.                   <dx-text-area placeholder="Notizen" [(value)]="patient.notes" width="auto" height="100"
  326.                     (onFocusIn)="onFocusIn($event)">
  327.                   </dx-text-area>
  328.                 </td>
  329.               </tr>
  330.             </table>
  331.           </div>
  332.  
  333.           <div class="column">
  334.             <table style="table-layout: fixed; width: 90%">
  335.               <tr>
  336.                 <td>
  337.                   <span style="color: #b1000a">Kategorie*</span>
  338.                   <dx-select-box #prioritySelectBox [dataSource]="priorityEntries" displayExpr="text" valueExpr="name"
  339.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" placeholder="Kategorie"
  340.                     noDataText="" [(value)]="patient.priority" [disabled]="!canEdit" stylingMode="underlined"
  341.                     (onValueChanged)="onPriorityChanged($event)">
  342.                     <dx-validator>
  343.                       <dxi-validation-rule type="required" message="Bitte geben Sie die Kategorie ein">
  344.                       </dxi-validation-rule>
  345.                     </dx-validator>
  346.                   </dx-select-box>
  347.                 </td>
  348.               </tr>
  349.             </table>
  350.           </div>
  351.           <div class="column">
  352.             <table style="table-layout: fixed; width: 90%">
  353.               <tr>
  354.                 <td>
  355.                   Kontaktdatum<dx-date-box #contactDateInput placeholder="Kontaktdatum" [opened]="false" type="date"
  356.                     [pickerType]="pickerType" [max]="maxDate" [(value)]="patient.contactDate" [disabled]="!canEdit"
  357.                     displayFormat="dd.MM.yyyy" invalidDateMessage="Bitte geben Sie ein gültiges Datum ein"
  358.                     useMaskBehavior="true" stylingMode="underlined" (onValueChanged)="onContactDateChanged($event)">
  359.                     <dx-validator>
  360.                       <dxi-validation-rule type="custom" [validationCallback]="contactDateComparison"
  361.                         [reevaluate]="true" message="Bitte geben Sie das Kontaktdatum an"></dxi-validation-rule>
  362.                     </dx-validator>
  363.                   </dx-date-box>
  364.                 </td>
  365.               </tr>
  366.             </table>
  367.           </div>
  368.           <div class="column">
  369.             <table style="table-layout: fixed; width: 90%">
  370.               <tr>
  371.                 <td>
  372.                   Urlaubs-/Aufenthaltsland<dx-autocomplete placeholder="Urlaubs-/Aufenthaltsland"
  373.                     [(value)]="patient.countryOfResidence" [dataSource]="residences" valueExpr="text"
  374.                     [showClearButton]="false"
  375.                     [disabled]="!canEdit || !patient.priority || patient.priority !== 'ReturneesVoluntarily'"
  376.                     stylingMode="underlined" noDataText="" (onValueChanged)="onResidenceChanged($event)"
  377.                     (onItemClick)="onResidenceClick($event)" (onFocusIn)="onFocusIn($event)">
  378.                   </dx-autocomplete>
  379.                 </td>
  380.               </tr>
  381.             </table>
  382.           </div>
  383.           <div class="column"
  384.             *ngIf="!patient.priority || (patient.priority !== 'ContactPerson1WithNotification' && patient.priority !== 'ContactPerson1')">
  385.             <table style="table-layout: fixed; width: 90%">
  386.               <tr>
  387.                 <td style="border-bottom: 1px solid #ddd; height: 54px">
  388.                   <div>
  389.                     <div class="healthTestText">Gesundtestung mit einem Termin</div>
  390.                     <div class="healthTestItem">
  391.                       <dx-check-box [(value)]="patient.gesundTestungEinfach"
  392.                         (onValueChanged)="onGesundTestungEinfachChanged($event)"
  393.                         [disabled]="!canEdit || (origin === 'worklist' && tabIndex > 0) || (patient.priority && patient.priority === 'ContactPerson1WithNotification') || (patient.priority && patient.priority === 'ContactPerson1')">
  394.                       </dx-check-box>
  395.                     </div>
  396.                   </div>
  397.                   <div>
  398.                     <div class="healthTestText">Gesundtestung mit zwei Terminen</div>
  399.                     <div class="healthTestItem">
  400.                       <dx-check-box [(value)]="patient.gesundTestung" (onValueChanged)="onGesundTestungChanged($event)"
  401.                         [disabled]="!canEdit || (origin === 'worklist' && tabIndex > 0) || (patient.priority && patient.priority === 'ContactPerson1WithNotification') || (patient.priority && patient.priority === 'ContactPerson1')">
  402.                       </dx-check-box>
  403.                     </div>
  404.                   </div>
  405.                 </td>
  406.               </tr>
  407.             </table>
  408.           </div>
  409.           <div class="column"
  410.             *ngIf="patient.priority && (patient.priority === 'ContactPerson1WithNotification' || patient.priority === 'ContactPerson1')">
  411.             <table style="table-layout: fixed; width: 90%">
  412.               <tr>
  413.                 <td style="border-bottom: 1px solid #ddd; height: 54px">
  414.                   <div>
  415.                     <div class="healthTestText">Kontaktperson mit einem Termin</div>
  416.                     <div class="healthTestItem">
  417.                       <dx-check-box [(value)]="patient.contactPerson1OneAppointment"
  418.                         (onValueChanged)="onContactPersonOneAppointmentChanged($event)"
  419.                         [disabled]="!canEdit || (origin === 'worklist' && tabIndex > 0)">
  420.                       </dx-check-box>
  421.                     </div>
  422.                   </div>
  423.                   <div>
  424.                     <div class="healthTestText">Kontaktperson mit zwei Terminen</div>
  425.                     <div class="healthTestItem">
  426.                       <dx-check-box [(value)]="patient.contactPerson1TwoAppointments"
  427.                         (onValueChanged)="onContactPersonTwoAppointmentsChanged($event)"
  428.                         [disabled]="!canEdit || (origin === 'worklist' && tabIndex > 0)"></dx-check-box>
  429.                     </div>
  430.                   </div>
  431.                 </td>
  432.               </tr>
  433.             </table>
  434.           </div>
  435.           <div class="columnMax" *ngIf="origin === 'sharepoint' && tabIndex === 0">
  436.             <table style="table-layout: fixed; width: 95%;">
  437.               <tr>
  438.                 <td style="border-bottom: 1px solid #ddd; height: 54px">Terminerfassung?  
  439.                   <dx-check-box [(value)]="patient.appointmentRecording"
  440.                     [visible]="origin === 'sharepoint' && tabIndex === 0"
  441.                     (onValueChanged)="onAppointmentRecordingChanged($event)"></dx-check-box>
  442.                 </td>
  443.               </tr>
  444.             </table>
  445.           </div>
  446.           <div class="column">
  447.             <table style="table-layout: fixed; width: 90%">
  448.               <tr>
  449.                 <td>
  450.                   EMS-ID<dx-text-box #authorityAssignedIdInput placeholder="EMS-ID"
  451.                     [(value)]="patient.authorityAssignedId" [disabled]="!callCenterCanEdit" maxLength="10"
  452.                     stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  453.                   </dx-text-box>
  454.                 </td>
  455.               </tr>
  456.             </table>
  457.           </div>
  458.           <div class="column">
  459.             <table style="table-layout: fixed; width: 90%">
  460.               <tr>
  461.                 <td>
  462.                   <div
  463.                     style="float: left; width: calc(100% - 40px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  464.                     DriveIn-ID</div>
  465.                   <div style="float: left; width: calc(100% - 40px);">
  466.                     <dx-text-box #driveInAssignedIdInput placeholder="DriveIn-ID" [(value)]="patient.driveInAssignedId"
  467.                       [disabled]="!callCenterCanEdit" stylingMode="underlined" (onFocusIn)="onFocusIn($event)">
  468.                     </dx-text-box>
  469.                   </div>
  470.                   <div style="float: left; width: 40px; text-align: right" title="DriveIn-ID generieren">
  471.                     <dx-button icon="key" (onClick)="createDriveInId($event)" [disabled]="!callCenterCanEdit">
  472.                     </dx-button>
  473.                   </div>
  474.                 </td>
  475.               </tr>
  476.             </table>
  477.           </div>
  478.           <div class="column">
  479.             <table style="table-layout: fixed; width: 90%">
  480.               <tr>
  481.                 <td>
  482.                   <div style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">Sammelstelle / Mobiler
  483.                     Dienst (1. Termin)</div>
  484.                   <dx-select-box #driveInSelectBox [dataSource]="driveInEntries" [displayExpr]="driveInDisplayValue"
  485.                     valueExpr="id" [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith"
  486.                     placeholder="Sammelstelle / Mobiler Dienst (1. Termin)" noDataText="" [(value)]="patient.driveInId"
  487.                     [disabled]="!callCenterCanEdit" stylingMode="underlined"
  488.                     (onValueChanged)="onDriveInChanged($event)">
  489.                   </dx-select-box>
  490.                 </td>
  491.               </tr>
  492.             </table>
  493.           </div>
  494.           <div class="column">
  495.             <table style="table-layout: fixed; width: 90%">
  496.               <tr>
  497.                 <td>
  498.                   <div style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis">Sammelstelle / Mobiler
  499.                     Dienst (2. Termin)</div>
  500.                   <dx-select-box [dataSource]="driveInEntries" [displayExpr]="driveInDisplayValue" valueExpr="id"
  501.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith"
  502.                     placeholder="Sammelstelle / Mobiler Dienst (2. Termin)" noDataText=""
  503.                     [(value)]="patient.secondDriveInId"
  504.                     [disabled]="!callCenterCanEdit || (!patient.gesundTestung && !patient.contactPerson1TwoAppointments)"
  505.                     stylingMode="underlined" (onValueChanged)="onSecondDriveInChanged($event)">
  506.                   </dx-select-box>
  507.                 </td>
  508.               </tr>
  509.             </table>
  510.           </div>
  511.           <div class="column">
  512.             <table style="table-layout: fixed; width: 90%">
  513.               <tr>
  514.                 <td>
  515.                   <div
  516.                     style="float: left; width: calc(100% - 40px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  517.                     Termin</div>
  518.                   <div style="float: left; width: calc(100% - 40px);">
  519.                     <dx-select-box #appointmentInput [dataSource]="appointmentEntries" valueExpr="startDate"
  520.                       placeholder="Termin" noDataText="" [(value)]="patient.appointment" [disabled]="!callCenterCanEdit"
  521.                       [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" stylingMode="underlined"
  522.                       [showDropDownButton]="true" fieldTemplate="field" itemTemplate="item"
  523.                       (onValueChanged)="onAppointmentChanged($event)">
  524.                       <div *dxTemplate="let data of 'field'">
  525.                         <dx-text-box [value]="data?.startDate | date:'dd.MM.yyyy HH:mm'"></dx-text-box>
  526.                       </div>
  527.                       <div *dxTemplate="let data of 'item'">
  528.                         {{data.startDate | date:'dd.MM.yyyy HH:mm'}} (Verfügbar: {{data.available}})
  529.                       </div>
  530.                     </dx-select-box>
  531.                   </div>
  532.                   <div style="float: left; width: 40px; text-align: right">
  533.                     <dx-button icon="event" (onClick)="showSchedulerApp($event)" [disabled]="!callCenterCanEdit">
  534.                     </dx-button>
  535.                   </div>
  536.                 </td>
  537.               </tr>
  538.             </table>
  539.           </div>
  540.           <div class="column"
  541.             *ngIf="!patient.priority || (patient.priority !== 'ContactPerson1WithNotification' && patient.priority !== 'ContactPerson1')">
  542.             <table style="table-layout: fixed; width: 90%">
  543.               <tr>
  544.                 <td>
  545.                   <div
  546.                     style="float: left; width: calc(100% - 40px - 38px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  547.                     Termin (Gesundtestung)</div>
  548.                   <div style="float: left; width: calc(100% - 40px - 38px);">
  549.                     <dx-select-box #secondAppointmentInput [dataSource]="secAppointmentEntries" valueExpr="startDate"
  550.                       placeholder="Termin (Gesundtestung)" noDataText="" [(value)]="patient.secondAppointment"
  551.                       [disabled]="!canEditAppointmentHealth" [searchEnabled]="!isMobile && !isTablet"
  552.                       searchMode="startsWith" stylingMode="underlined" [showDropDownButton]="true" fieldTemplate="field"
  553.                       itemTemplate="item">
  554.                       <div *dxTemplate="let data of 'field'">
  555.                         <dx-text-box [value]="data?.startDate | date:'dd.MM.yyyy HH:mm'"></dx-text-box>
  556.                       </div>
  557.                       <div *dxTemplate="let data of 'item'">
  558.                         {{data.startDate | date:'dd.MM.yyyy HH:mm'}} (Verfügbar: {{data.available}})
  559.                       </div>
  560.                     </dx-select-box>
  561.                   </div>
  562.                   <div style="float: left; width: 40px; text-align: right">
  563.                     <dx-button icon="event" (onClick)="showSchedulerSecApp($event)"
  564.                       [disabled]="!canEditAppointmentHealth"></dx-button>
  565.                   </div>
  566.                   <div style="float: left; width: 38px; text-align: right">
  567.                     <dx-button id="cancelAppointmentButton" icon="fa fa-bell-slash" hint="Termin stornieren"
  568.                       [disabled]="!canEditAppointmentHealth || !(origin === 'sharepoint' && tabIndex === 2 && patient.gesundTestung)"
  569.                       (onClick)="cancelSecondAppointmentGesundTestung($event)">
  570.                     </dx-button>
  571.                   </div>
  572.                 </td>
  573.               </tr>
  574.             </table>
  575.           </div>
  576.           <div class="column"
  577.             *ngIf="patient.priority && (patient.priority === 'ContactPerson1WithNotification' || patient.priority === 'ContactPerson1') ">
  578.             <table style="table-layout: fixed; width: 90%">
  579.               <tr>
  580.                 <td>
  581.                   <div
  582.                     style="float: left; width: calc(100% - 40px - 38px); white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
  583.                     2. Termin</div>
  584.                   <div style="float: left; width: calc(100% - 40px - 38px);">
  585.                     <dx-select-box [dataSource]="secAppointmentEntries" valueExpr="startDate" placeholder="2. Termin"
  586.                       noDataText="" [(value)]="patient.secondAppointment"
  587.                       [disabled]="!canEdit || (origin === 'sharepoint' && tabIndex === 0) || patient.contactPerson1OneAppointment || patient.gesundTestung || patient.gesundTestungEinfach"
  588.                       [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" stylingMode="underlined"
  589.                       [showDropDownButton]="true" fieldTemplate="field" itemTemplate="item">
  590.                       <div *dxTemplate="let data of 'field'">
  591.                         <dx-text-box [value]="data?.startDate | date:'dd.MM.yyyy HH:mm'"></dx-text-box>
  592.                       </div>
  593.                       <div *dxTemplate="let data of 'item'">
  594.                         {{data.startDate | date:'dd.MM.yyyy HH:mm'}} (Verfügbar: {{data.available}})
  595.                       </div>
  596.                       <dx-validator>
  597.                         <dxi-validation-rule type="custom" [validationCallback]="contactSecondAppointmentComparison"
  598.                           [reevaluate]="true" message="Bitte geben Sie den 2. Termin an"></dxi-validation-rule>
  599.                       </dx-validator>
  600.                     </dx-select-box>
  601.                   </div>
  602.                   <div style="float: left; width: 40px; text-align: right">
  603.                     <dx-button icon="event" (onClick)="showSchedulerSecApp($event)"
  604.                       [disabled]="!canEdit || (origin === 'sharepoint' && tabIndex === 0) || patient.contactPerson1OneAppointment || patient.gesundTestung || patient.gesundTestungEinfach">
  605.                     </dx-button>
  606.                   </div>
  607.                   <div style="float: left; width: 38px; text-align: right">
  608.                     <dx-button id="cancelAppointmentButton" icon="fa fa-bell-slash" hint="Termin stornieren"
  609.                       [disabled]="!canEdit || !(origin === 'sharepoint' && tabIndex === 2 && patient.contactPerson1TwoAppointments)"
  610.                       (onClick)="cancelSecondAppointmentContact($event)">
  611.                     </dx-button>
  612.                   </div>
  613.                 </td>
  614.               </tr>
  615.             </table>
  616.           </div>
  617.           <div class="column">
  618.             <table style="table-layout: fixed; width: 90%">
  619.               <tr>
  620.                 <td>
  621.                   Labor<dx-select-box #laborInput [dataSource]="laborEntries" displayExpr="name" valueExpr="id"
  622.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" placeholder="Labor" noDataText=""
  623.                     [(value)]="patient.laboratoryId" stylingMode="underlined">
  624.                     <dx-validator>
  625.                       <dxi-validation-rule type="custom" [validationCallback]="priorityComparison" [reevaluate]="true"
  626.                         message="Bitte geben Sie ein Labor an"></dxi-validation-rule>
  627.                     </dx-validator>
  628.                   </dx-select-box>
  629.                 </td>
  630.               </tr>
  631.             </table>
  632.           </div>
  633.           <div class="column"
  634.             *ngIf="user.roles && (user.roles.indexOf('authority') !== -1 || user.roles.indexOf('administrator') !== -1) && origin === 'sharepoint' && tabIndex === 1">
  635.             <table style="table-layout: fixed; width: 90%">
  636.               <tr>
  637.                 <td>
  638.                   Status<dx-select-box #statusInput [dataSource]="statusEntries" displayExpr="name" valueExpr="id"
  639.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" placeholder="Status" noDataText=""
  640.                     [(value)]="status" stylingMode="underlined" (onValueChanged)="onStatusChanged($event)">
  641.                     <div *dxTemplate="let value of 'item'">
  642.                       <span [style.color]="value.color" [style.font-weight]="value.fontWeight">{{value.name}}</span>
  643.                     </div>
  644.                     <dx-validator>
  645.                       <dxi-validation-rule type="custom" [validationCallback]="statusComparison" [reevaluate]="true"
  646.                         message="Bitte geben Sie einen Status ein"></dxi-validation-rule>
  647.                     </dx-validator>
  648.                   </dx-select-box>
  649.                 </td>
  650.               </tr>
  651.             </table>
  652.           </div>
  653.  
  654.           <div
  655.             *ngIf="patient && patient.currentSample && patient.currentSample.orderNumber && patient.currentSample.orderNumber.length > 0"
  656.             class="column">
  657.             <table style="table-layout: fixed; width: 90%">
  658.               <tr>
  659.                 <td>
  660.                   <div style="float: left; width: calc(100% - 50px); color: #b1000a">Barcode
  661.                     <dx-text-box [value]="patient.currentSample.orderNumber" disabled="true" stylingMode="underlined">
  662.                     </dx-text-box>
  663.                   </div>
  664.                   <div style="float: left; width: 50px; text-align: right; padding-top: 10px"
  665.                     title="Etikett mit Barcode anfordern">
  666.                     <a (click)="getBarcode($event)"><img class="clickable" src="assets/images/barcode.png"
  667.                         width="40" /></a>
  668.                   </div>
  669.                 </td>
  670.               </tr>
  671.             </table>
  672.           </div>
  673.           <div class="column" *ngIf="origin === 'worklist' && tabIndex === 2">
  674.             <table style="table-layout: fixed; width: 90%">
  675.               <tr>
  676.                 <td>
  677.                   Status<dx-select-box [dataSource]="setStatusEntries" displayExpr="name" valueExpr="id"
  678.                     [searchEnabled]="!isMobile && !isTablet" searchMode="startsWith" placeholder="Status" noDataText=""
  679.                     [(value)]="patient.status" stylingMode="underlined" (onValueChanged)="onSetStatusChanged($event)">
  680.                   </dx-select-box>
  681.                 </td>
  682.               </tr>
  683.             </table>
  684.           </div>
  685.           <div class="columnMax" style="width: 95%; text-align: right"
  686.             *ngIf="user.roles && (user.roles.indexOf('authority') !== -1 || user.roles.indexOf('administrator') !== -1) && origin === 'sharepoint' && tabIndex === 1 && (patient.status === 'Authority')">
  687.             <div style="padding-bottom: 10px"></div>
  688.             <!--<dx-button class="{{getAuthorityButtonStyle(patient.status, 'Accepted')}}" style="margin-right: 5px"
  689.               (onClick)="authorize($event, patient, true)" icon="check"></dx-button>
  690.             <dx-button class="{{getAuthorityButtonStyle(patient.status, 'Rejected')}}"
  691.               (onClick)="authorize($event, patient, false)" icon="close"></dx-button>-->
  692.           </div>
  693.         </div>
  694.       </div>
  695.     </dx-scroll-view>
  696.   </div>
  697. </div>
  698. <dx-toolbar id="patientCollectionFooter">
  699.  
  700.   <!-- back button desktop and mobile -->
  701.   <dxi-item location="before" itemTemplate="patientCollectionTemplate">
  702.     <div *dxTemplate="let item of 'patientCollectionTemplate'">
  703.       <div *ngIf="isDesktop" style="margin-left: 10px; margin-top: 6px;">
  704.         <dx-button icon="chevrondoubleleft" text="Zurück" (onClick)="back($event)"></dx-button>
  705.       </div>
  706.       <div *ngIf="!isDesktop" style="margin-left: 5px; margin-top: 2px">
  707.         <a (click)="back($event)"><img class="clickable" src="assets/images/arrow_left.png" height="45" /></a>
  708.       </div>
  709.     </div>
  710.   </dxi-item>
  711.  
  712.   <dxi-item location="after" itemTemplate="patientCollectionTemplate">
  713.     <div *dxTemplate="let item of 'patientCollectionTemplate'">
  714.  
  715.       <!--desktop create change sendToAuthority-->
  716.       <div *ngIf="isDesktop && collectPatient" style="margin-right: 10px; margin-top: 6px;">
  717.         <dx-button icon="save" text="Erstellen" (onClick)="submit($event)"></dx-button>
  718.       </div>
  719.       <div *ngIf="isDesktop && !collectPatient" style="margin-right: 10px; margin-top: 6px;">
  720.         <dx-button icon="save" text="Speichern" (onClick)="change($event)"></dx-button>
  721.         <span
  722.           *ngIf="user.roles && (user.roles.indexOf('callcenter') !== -1 || user.roles.indexOf('administrator') !== -1) && origin === 'sharepoint' && tabIndex === 0 && patient.status === 'Created'"
  723.           style="margin-left: 5px">
  724.           <dx-button icon="message" text="An Behörde übermitteln" (onClick)="sendToAuthority($event)"></dx-button>
  725.         </span>
  726.       </div>
  727.  
  728.       <!--mobile create change sendToAuthority-->
  729.       <div *ngIf="!isDesktop && collectPatient" style="margin-right: 20px; margin-top: 4px">
  730.         <a (click)="submit($event)"><img class="clickable" src="assets/images/edit.png" height="40" /></a>
  731.       </div>
  732.       <div *ngIf="!isDesktop && !collectPatient" style="margin-right: 20px; margin-top: 4px">
  733.         <a style="float: left" (click)="change($event)"><img class="clickable" src="assets/images/edit.png"
  734.             height="40" /></a>
  735.         <a *ngIf="user.roles && (user.roles.indexOf('callcenter') !== -1 || user.roles.indexOf('administrator') !== -1)  && origin === 'sharepoint' && tabIndex === 0 && patient.status === 'Created'"
  736.           style="float: left; margin-left: 5px; margin-top: 3px" (click)="sendToAuthority($event)"><img
  737.             class="clickable" src="assets/images/send.png" height="35" /></a>
  738.       </div>
  739.     </div>
  740.   </dxi-item>
  741.  
  742. </dx-toolbar>
  743.  
  744. <!--VDAS Popup-->
  745. <dx-popup #vdasPopup title="VDAS-Abfrage" [showCloseButton]="false" [closeOnOutsideClick]="false"
  746.   [(visible)]="vdasPopupVisible" (onShowing)="onShowing($event)" (onShown)="onShown($event)">
  747.   <div *dxTemplate="let data = data of 'content'" style="padding-left: 8px">
  748.  
  749.     <dx-scroll-view #scrollViewPopup>
  750.       <div><b style="margin-left: 2px">Ergebnis der VDAS-Abfrage  <dx-button
  751.             style="background-color: lightgrey" icon="search"></dx-button></b>
  752.       </div>
  753.       <div class="columnPopup">
  754.         <table style="table-layout: fixed; width: 90%">
  755.           <tr>
  756.             <td>
  757.               Nachname<dx-text-box placeholder="Nachname" [value]="vdasPatient.lastname" [disabled]="true"
  758.                 stylingMode="underlined">
  759.               </dx-text-box>
  760.             </td>
  761.           </tr>
  762.         </table>
  763.       </div>
  764.       <div class="columnPopup">
  765.         <table style="table-layout: fixed; width: 90%">
  766.           <tr>
  767.             <td>
  768.               Vorname<dx-text-box placeholder="Vorname" [value]="vdasPatient.firstname" [disabled]="true"
  769.                 stylingMode="underlined">
  770.               </dx-text-box>
  771.             </td>
  772.           </tr>
  773.         </table>
  774.       </div>
  775.       <div class="columnPopup">
  776.         <table style="table-layout: fixed; width: 90%">
  777.           <tr>
  778.             <td>
  779.               Geburtsdatum<dx-date-box placeholder="Geburtsdatum" [opened]="false" type="date"
  780.                 [value]="vdasPatient.birthdate" displayFormat="dd.MM.yyyy" [disabled]="true" stylingMode="underlined">
  781.               </dx-date-box>
  782.             </td>
  783.           </tr>
  784.         </table>
  785.       </div>
  786.       <div class="columnPopup">
  787.         <table style="table-layout: fixed; width: 90%">
  788.           <tr>
  789.             <td>
  790.               SVNR<dx-number-box placeholder="SVNRTTMMJJ" [value]="vdasPatient.ssn" [disabled]="true"
  791.                 stylingMode="underlined">
  792.               </dx-number-box>
  793.             </td>
  794.           </tr>
  795.         </table>
  796.       </div>
  797.       <div class="columnPopup">
  798.         <table style="table-layout: fixed; width: 90%">
  799.           <tr>
  800.             <td>
  801.               SV-Träger<dx-select-box #svtCodeInput [dataSource]="vdasPatient.insurance" displayExpr="svtName"
  802.                 valueExpr="svtCode" placeholder="SV-Träger" noDataText="" [(value)]="vdasPatient.svtCode"
  803.                 [disabled]="false" stylingMode="underlined">
  804.               </dx-select-box>
  805.             </td>
  806.           </tr>
  807.         </table>
  808.       </div>
  809.       <div class="columnPopup">
  810.         <table style="table-layout: fixed; width: 90%">
  811.           <tr>
  812.             <td>
  813.               Geschlecht
  814.               <dx-select-box #svtCodeInput [dataSource]="vdasPatient.patientZPI" displayExpr="text" valueExpr="name" noDataText=""
  815.                 [value]="vdasPatient.sex" [disabled]="true" stylingMode="underlined">
  816.               </dx-select-box>
  817.             </td>
  818.           </tr>
  819.         </table>
  820.       </div>
  821.       <div class="columnPopup">
  822.         <table style="table-layout: fixed; width: 90%">
  823.           <tr>
  824.             <td>
  825.               Straße<dx-text-box placeholder="Straße" [value]="vdasPatient.patientZPI[0].patientAddress.streetName" [disabled]="true"
  826.                 stylingMode="underlined">
  827.               </dx-text-box>
  828.             </td>
  829.           </tr>
  830.         </table>
  831.       </div>
  832.       <div class="columnPopup">
  833.         <table style="table-layout: fixed; width: 90%">
  834.           <tr>
  835.             <td>
  836.               PLZ<dx-text-box placeholder="PLZ" [value]="vdasPatient.patientZPI[0].patientAddress.postalCode" [disabled]="true"
  837.                 stylingMode="underlined">
  838.               </dx-text-box>
  839.             </td>
  840.           </tr>
  841.         </table>
  842.       </div>
  843.       <div class="columnPopup">
  844.         <table style="table-layout: fixed; width: 90%">
  845.           <tr>
  846.             <td>
  847.               Ort<dx-text-box placeholder="Ort" [value]="vdasPatient.patientZPI[0].patientAddress.city" [disabled]="true"
  848.                 stylingMode="underlined">
  849.               </dx-text-box>
  850.             </td>
  851.           </tr>
  852.         </table>
  853.       </div>
  854.     </dx-scroll-view>
  855.  
  856.     <dxi-toolbar-item itemTemplate="closeButtonTemplate" location="before" toolbar="bottom">
  857.       <div *dxTemplate="let item of 'closeButtonTemplate'">
  858.         <div *ngIf="isDesktop; else mobileTemplate">
  859.           <dx-button icon="close" text="Abbrechen" (onClick)="cancel()"></dx-button>
  860.         </div>
  861.         <ng-template #mobileTemplate>
  862.           <a (click)="cancel()"><img class="clickable" src="assets/images/cancel_white.png" height="25" /></a>
  863.         </ng-template>
  864.       </div>
  865.     </dxi-toolbar-item>
  866.  
  867.     <dxi-toolbar-item itemTemplate="assignButtonTemplate" location="after" toolbar="bottom">
  868.       <div *dxTemplate="let item of 'assignButtonTemplate'">
  869.         <div *ngIf="isDesktop; else mobileTemplate">
  870.           <dx-button icon="check" text="Übernehmen" (onClick)="assign()"></dx-button>
  871.         </div>
  872.         <ng-template #mobileTemplate>
  873.           <a (click)="assign()"><img class="clickable" src="assets/images/assign_barcode.png" height="35" /></a>
  874.         </ng-template>
  875.       </div>
  876.     </dxi-toolbar-item>
  877.   </div>
  878. </dx-popup>
  879.  
  880. <app-scheduler [visible]="schedulePopupVisible" [type]="type" (closeScheduler)="closeScheduler($event)"
  881.   (scheduleAppointment)="scheduleAppointment($event)"></app-scheduler>

Editor

You can edit this paste and save as new:


File Description
  • patient-collection.component.html
  • Paste Code
  • 22 Oct-2020
  • 45.81 Kb
You can Share it: