PageSourceSearch

https://web.drfirst.com/4544.2925baa4928e5b57.js

js drfirst.com collected 2026-10-03 19:20:46 UTC 17,794 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkwapp_rcopia4ui=self.webpackChunkwapp_rcopia4ui||[]).push([[4544,918],{918:(r,a,e)=>{e.r(a),e.d(a,{default:()=>d});const d=e(95507).A;},64544:(r,a,e)=>{e.r(a),e.d(a,{default:()=>o});var s=e(918).default,d=e(42328).A;const o=angular.module("df-w-utilities-merge-duplicate-patients",[]).directive("dfWUtilitiesMergePatientDetail",s).directive("dfWUtilitiesMergeDuplicatePatients",d);},42328:(r,a,e)=>{e.d(a,{A:()=>k}),e(50113),e(54554),e(62010),e(26099),e(3362),e(9391),e(27495),e(5746);var D=e(85072),M=e.n(D),E=e(97825),T=e.n(E),b=e(77659),u=e.n(b),O=e(55056),R=e.n(O),A=e(10540),_=e.n(A),I=e(41113),l=e.n(I),m=e(69176),p={};p.styleTagTransform=l(),p.setAttributes=R(),p.insert=u().bind(null,"head"),p.domAPI=T(),p.insertStyleElement=_(),M()(m.A,p);const k=["PatientFactory","MessageBarFactory","$filter","_","EventGenerator","SessionUtils",function(X,C,N,w,F,z){return{controller:["$filter","$scope","$state","MessageBarFactory","PatientFactory","ModalsFactory",function(V,t,K,c,h,P){function U(){var i=w.pluck(t.patientsToMerge,"personId");h.mergePatients(t.patientToKeep,i,t.aliasMergedPatients).then(function(){c.addAlert(i.length+" patients successfully merged in to "+t.patientToKeep.name.firstName+" "+t.patientToKeep.name.lastName+". "+(t.aliasMergedPatients?"Aliases created.":""),"success",t.widgetName,5e3,t.patientKey);for(var L=0;L<i.length;L++)F.patientEvents.publishPatientMergeEvent(t.origin,t.widgetId,i[L],t.patientToKeep.personId);t.patientToKeep=null,t.patientsToMerge=[],t.searchString="",t.searchResults=[],h.useCurrentPatient&&j();},function(n){n&&n.data&&n.data.errorMessage&&c.addAlert(n.data.errorMessage,"danger",t.widgetName,5e3);});}function j(){K.go(t.$root.fromViewName?t.$root.fromViewName:"patient-search");}t.widgetName="df-w-utilities-merge-duplicate-patients",t.modalsFactory=P,t.cancel=function Z(){j();},t.displayPatientDetails=function Y(i){t.patientDetails=i;var n={scope:t,size:"sm",title:"User Details",template:e(15365).A,cancelBtn:!0};P.open(n);},t.messageBarFactory=c,t.deleteKeepPatient=function J(){t.patientToKeep=null;},t.deleteMergePatient=function Q(i){t.patientsToMerge.splice(t.patientsToMerge.indexOf(i),1);},t.keepPatient=function q(i,n){n.stopPropagation(),t.patientToKeep=i;},t.mergePatient=function $(i,n){n.stopPropagation(),t.patientsToMerge.push(i);},t.merge=U,t.mergeRecords=function et(){t.modalsFactory.open({scope:t,title:"Merge Duplicate Patients - Confirmation",message:"Patient merge cannot be undone. Are you sure you wish to continue?",cancelBtn:!0,size:"md",onOk:U});},t.notInKeepOrMerge=function tt(i){return!angular.equals(i.personId,t.patientToKeep?t.patientToKeep.personId:{})&&!w.find(t.patientsToMerge,function(n){return w.isEqual(i.personId,n.personId);});},t.search=function it(){t.widgetLoaderMessage="Loading Patients..",t.showWidgetLoader=!0,t.searchString&&(h.findPatient(t.searchString).then(function(i){t.searchResults=[];for(var n=0;n<i.length;n++)i[n].aliasFor||t.searchResults.push(i[n]);}).finally(function(){t.showWidgetLoader=!1;}),t.searchExecuted=!0);},t.patientsToMerge=[],t.$on("$destroy",function H(){h.useCurrentPatient=!1;}),t.init=function(){t.compoundData&&(t.patientToKeep=t.compoundData.patient);};}],template:e(74345).A,scope:{origin:"@?",patientKey:"=?",widgetId:"@?"},link:function(t,K,c){t.origin=c.origin||"utilities-merge-duplicate-patients",t.widgetId=c.widgetId||z.generateWidgetId(t.origin,"default"),t.widgetMsgs=N("filter")(C.alerts,{widget:t.widgetName},!0),t.$watch(function(){return C.alerts;},function(h){t.widgetMsgs=N("filter")(h,{widget:t.widgetName},!0);},!0),t.standalone="standalone"in c||null,t.patientFactory=X,t.patientKey=c.patientKey||t.patientKey,t.compoundData=t.patientFactory.dataStore[t.patientKey],t.$on("patientData.update."+t.patientKey,function(h,P){P?(t.compoundData=t.patientFactory.dataStore[t.patientKey],t.init(),t.showWidgetLoader=!1):(t.compoundData=null,t.showWidgetLoader=!0);}),t.patientKey||F.publishErrorEvent(t.origin,t.widgetId,"WidgetMissingParameterException","Widget requires patient but was not provided one",K[0].tagName),t.init(),t.showWidgetLoader=!1;}};}];},95507:(r,a,e)=>{e.d(a,{A:()=>_});var s=e(85072),d=e.n(s),g=e(97825),f=e.n(g),o=e(77659),v=e.n(o),S=e(55056),W=e.n(S),D=e(10540),M=e.n(D),E=e(41113),T=e.n(E),b=e(9364),u={};u.styleTagTransform=T(),u.setAttributes=W(),u.insert=v().bind(null,"head"),u.domAPI=f(),u.insertStyleElement=M(),d()(b.A,u);const _=[function(){return{controller:["$scope","PatientFactory",function(l,m){function y(){l.patient&&l.patient.personId?m.getPatientDetailsById(l.patient.personId).then(function(x){l.patientDetails=x.data,typeof l.patientDetails.addressList>"u"?(l.patientIn.addressList=[{}],l.patientIn.addressList[0].phoneNumbers=[]):("@null"==l.patientDetails.addressList[0].address1&&(l.patientDetails.addressList[0].address1=""),"@null"==l.patientDetails.addressList[0].address2&&(l.patientDetails.addressList[0].address2=""));}):l.patientDetails=null;}!function p(){y(),l.$watch("patient",y);}();}],template:e(64853).A,scope:{patient:"=",delete:"&onDelete"},link:function(m,p,y){m.showDelete=y.hasOwnProperty("onDelete");}};}];},69176:(r,a,e)=>{e.d(a,{A:()=>v});var s=e(31034),d=e.n(s),g=e(4131),o=e.n(g)()(d());o.push([r.id,".utilities-merge-duplicate-patients #patient-search-text {\n  width: 300px;\n  display: inline-block;\n}\n.utilities-merge-duplicate-patients .panel-with-footer .panel-body {\n  border-bottom: none;\n  border-radius: 0;\n}\n.utilities-merge-duplicate-patients .panel-with-footer .panel-body .patient-to-merge {\n  border-right: 1px solid #e6e6e6;\n  border-bottom: 1px solid #e6e6e6;\n  margin-bottom: 6px;\n}\n.utilities-merge-duplicate-patients .panel-with-footer .panel-body .patients-to-merge-wrapper {\n  display: flex;\n  flex-direction: row;\n  flex-wrap: wrap;\n  justify-content: space-around;\n  align-content: flex-start;\n  align-items: stretch;\n}\n.utilities-merge-duplicate-patients .panel-with-footer .panel-body .patients-to-merge-wrapper .patient-to-merge {\n  order: 0;\n  flex: 1 1 auto;\n  align-self: auto;\n  padding: 0 10px;\n}\n.utilities-merge-duplicate-patients .panel-with-footer .panel-footer {\n  border-bottom: 1px solid #f2f2f2;\n  border-right: 1px solid #f2f2f2;\n  border-left: 1px solid #f2f2f2;\n}\n.utilities-merge-duplicate-patients .panel-keep .panel-body {\n  min-height: 117px;\n}\n.utilities-merge-duplicate-patients .checkbox {\n  margin-top: 5px;\n  margin-bottom: 5px;\n}\n.utilities-merge-duplicate-patients .checkbox input {\n  margin-top: 3px;\n}\n.utilities-merge-duplicate-patients .btn.btn-secondary {\n  margin-top: -3px;\n}\n",""]);const v=o;},9364:(r,a,e)=>{e.d(a,{A:()=>v});var s=e(31034),d=e.n(s),g=e(4131),o=e.n(g)()(d());o.push([r.id,".utilities-merge-patient-detail {\n  position: relative;\n}\n.utilities-merge-patient-detail p {\n  margin: 0px;\n  margin-left: 20px;\n}\n.utilities-merge-patient-detail p:first-child {\n  margin: 0px;\n}\n.utilities-merge-patient-detail .action {\n  float: right;\n}\n",""]);const v=o;},15365:(r,a,e)=>{e.d(a,{A:()=>d});const d='<df-modal modal-name="\'utilities-merge-duplicate-patients-modal\'"> <df-modal-header modal-title="\'Patient Details\'" modal-name="\'utilities-merge-duplicate-patients-modal\'"> </df-modal-header>
1 <df-modal-body modal-name="\'utilities-merge-duplicate-patients-modal\'" s-id="utilities-merge-duplicate-patients-modal.body"> <df-w-utilities-merge-patient-detail patient="patientDetails"></df-w-utilities-merge-patient-detail> </df-modal-body> <df-modal-footer> <button a-id="okButton" s-id="utilities-merge-duplicate-patients-modal.ok" class="btn btn-primary" type="button" ng-click="modalsFactory.ok()"> OK </button> </df-modal-footer> </df-modal> ';},74345:(r,a,e)=>{e.d(a,{A:()=>d});const d='<section a-id="mergeDuplicatePatientsWidget" s-id="section.widget.utilities-merge-duplicate-patients" class="df-widget-utilities-merge-duplicate-patients" ng-class="standalone ? \'widget standalone\' : \'\'"> <div ng-if="!hideTitle && (!suppress || suppress.indexOf(\'widgetHeader\') === -1)" ng-class="$parent.standalone ? \'widget-header-standalone\' : \'widget-header\'"> <span a-id="title" s-id="utilities-merge-duplicate-patients.title">{{::application_name + " "}} Merge Duplicate Patients</span> <df-back-button></df-back-button> </div> <div class="df-widget-body"> <div widget-loader="showWidgetLoader" message="{{widgetLoaderMessage}}"></div> <div class="container-fluid utilities-merge-duplicate-patients"> <div uib-alert id="{{msg.id}}" a-id="messageBar" s-id="alert.{{msg.widget}}.{{msg.type}}" ng-repeat="msg in widgetMsgs track by $index" ng-class="\'alert-\' + (msg.type || \'warning\')"><span ng-bind-html="msg.msg"></span><button ng-click="messageBarFactory.closeAlert($index)" type="button" class="close" data-dismiss="alert" ng-if="!msg.cannotCollapse"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button></div> <div class="row"> <div class="col-md-12"> <p a-id="directionsText" s-id="utilities-merge-patient-detail.directions-paragraph">This tool allows you to merge medication, allergy, prescription from two or more patients into one, to correct where a duplicate patient has been created. To merge patients, do the following:</p> </div> </div> <div class="row"> <div class="col-md-12 col-lg-9"> <div class="row"> <div class="col-sm-6 col-md-8 col-lg-8"> <ol a-id="directionsList" s-id="utilities-merge-patient-detail.directions-list"> <li>Search for a patient or ID.</li> <li>Select the Patient that you want to keep by clicking the "KEEP" button".</li> <li>Then select the patient(s) that you wish to merge by clicking "MERGE".</li> <li>Click the "Merge Records" button.</li> </ol> </div> <div class="col-sm-6 col-md-4 col-lg-4"> <div class="panel panel-default panel-keep"> <div class="panel-heading"> <h3 class="panel-title">Keep</h3> </div> <div a-id="patientToKeepWrapper" s-id="utilities-merge-patient-detail.keep.container" class="panel-body"> <df-w-utilities-merge-patient-detail patient="patientToKeep" on-delete="deleteKeepPatient()"></df-w-utilities-merge-patient-detail> </div> </div> </div> </div> <div class="row visible-md visible-sm visible-xs horizontal-details"> <div class="col-md-12"> <div class="panel panel-default panel-with-footer panel-merge"> <div class="panel-heading"> <h3 class="panel-title">Merge</h3> </div> <div class="panel-body"> <div class="row patients-to-merge-wrapper"> <div a-id="patientToMergeWrapper" ng-repeat="patient in patientsToMerge" class="patient-to-merge"> <df-w-utilities-merge-patient-detail patient="patient" on-delete="deleteMergePatient(patient)"></df-w-utilities-merge-patient-detail> </div> </div> <div class="checkbox"> <label> <input a-id="makeAliasesCheckbox" s-id="utilities-merge-duplicate-patients.keep-as-aliases" type="checkbox" ng-model="aliasMergedPatients" ng-disabled="!patientToKeep || !patientsToMerge.length"> Keep as Aliases </label> </div> </div> <div class="panel-footer text-center"> <button a-id="mergeButton" class="btn btn-primary" ng-click="mergeRecords()" ng-disabled="!patientToKeep || !patientsToMerge.length">Merge Records</button> <button a-id="cancelButton" class="btn btn-default" ng-click="cancel()">Cancel</button> </div> </div> </div> </div> <div class="row"> <div class="col-md-12"> <div> <form name="blah" ng-submit="search()"> <input a-id="searchField" s-id="utilities-merge-duplicate-patients.search-patient" type="text" id="patient-search-text" class="form-control" ng-model="searchString" placeholder="Last Name, First Name OR ID" on-enter="search()"/> <button a-id="searchButton" s-id="utilities-merge-duplicate-patients.search" class="btn btn-secondary margin-bottom-3" ng-click="" type="submit"> <svg class="svg search-solid"> <use href="#search-solid"></use> </svg> </button> </form> </div> <div a-id="searchResultsWrapper" id="patient-search-results"> <br> <div a-id="noResults" ng-if="searchExecuted && (!searchResults || (searchResults | filter: notInKeepOrMerge).length == 0)">No patients found.</div> <table s-id="merge-duplicate-patients.patient-search-results" class="table table-bordered table-striped" ts-wrapper ng-if="(searchResults | filter: notInKeepOrMerge).length"> <thead> <tr> <th ts-criteria="displayName">Patient Name</th> <th>Sex</th> <th ts-criteria="dateofbirth">Birthdate</th> <th>Phone</th> <th>Rcopia ID</th> <th>External ID</th> <th style="width:150px">Action</th> </tr> </thead> <tbody> <tr a-id="row" ng-repeat="patient in searchResults | filter: notInKeepOrMerge | orderBy: \'displayName\' track by $index" ts-repeat ts-hide-no-data ng-click="displayPatientDetails(patient)"> <td a-id="nameColumn">{{patient.name | formatUserName: \'lastName suffix, prefix firstName middleName\'}} <br/>
1 <span ng-if="patient.aliasFor.name.lastName">&nbsp;&nbsp;ALIAS for {{patient.aliasFor.name.lastName}}</span> <span ng-if="patient.aliasFor.name.firstName">, {{patient.aliasFor.name.firstName}}</span> </td> <td a-id="genderColumn"> <span ng-bind="patient.gender" class="text-capitalize"></span> <br ng-if="patient.aliasFor.gender"/><span ng-bind="patient.aliasFor.gender"></span> </td> <td a-id="dobColumn"> <span>{{ patient.dateofbirth | date:\'MM/dd/yyyy\' }}</span> <br ng-if="patient.aliasFor.dateofbirth"/><span> {{patient.aliasFor.dateofbirth | date:\'MM/dd/yyyy\'}}</span> </td> <td a-id="phoneColumn"> <span ng-bind="patient.phoneNumbers[0].number"></span> <br ng-if="patient.aliasFor.phoneNumbers[0].number"/><span ng-bind="patient.aliasFor.phoneNumbers[0].number"></span> </td> <td a-id="rcopiaIdColumn"> <span ng-bind="patient.personId.simpleId"></span> <br ng-if="patient.aliasFor.personId.simpleId"/><span ng-bind="patient.aliasFor.personId.simpleId"></span> </td> <td a-id="externalIdColumn"> <span ng-bind="patient.externalIdentifiers | formatExternalId"></span> <br ng-if="patient.aliasFor.externalIdentifiers"/><span ng-bind="patient.aliasFor.externalIdentifiers | formatExternalId"></span> </td> <td a-id="actionsColumn" style="width:150px"> <button a-id="keepSelectionButton" s-id="utilities-merge-duplicate-patients.keep-patient" class="btn small" ng-click="keepPatient(patient, $event );" ng-disabled="patientToKeep">KEEP </button> <button a-id="mergeSelectionButton" s-id="utilities-merge-duplicate-patients.merge-patient" class="btn small" ng-click="mergePatient(patient, $event)">MERGE </button> <span ng-if="patient.aliasFor.name"> <br/> <button a-id="keepAliasSelectionButton" s-id="utilities-merge-duplicate-patients.keep-patient" class="btn small" ng-click="keepPatient(patient.aliasFor, $event );" ng-disabled="patientToKeep">KEEP </button> <button a-id="mergeAliasSelectionButton" s-id="utilities-merge-duplicate-patients.merge-patient" class="btn small" ng-click="mergePatient(patient.aliasFor, $event)">MERGE </button> </span> </td> </tr> </tbody> </table> </div> </div> </div> </div> <div class="hidden-md hidden-sm hidden-xs col-lg-3"> <div class="panel panel-default panel-with-footer panel-merge"> <div class="panel-heading"> <h3 class="panel-title">Merge</h3> </div> <div class="panel-body"> <div a-id="patientToMergeWrapper" s-id="utilities-merge-patient-detail.merge.container" ng-repeat="patient in patientsToMerge"> <df-w-utilities-merge-patient-detail patient="patient" on-delete="deleteMergePatient(patient)"></df-w-utilities-merge-patient-detail> <hr/> </div> <div class="checkbox"> <label> <input a-id="makeAliasesCheckbox" s-id="utilities-merge-duplicate-patients.keep-as-aliases-checkbox" type="checkbox" ng-model="aliasMergedPatients"> Keep as Aliases </label> </div> </div> <div class="panel-footer text-right"> <button a-id="mergeButton" s-id="utilities-merge-duplicate-patients.merge-records" class="btn btn-primary" ng-click="mergeRecords()" ng-disabled="!patientToKeep || !patientsToMerge.length">Merge Records</button> <button a-id="cancelButton" s-id="utilities-merge-duplicate-patients.cancel" class="btn btn-default" ng-click="cancel()">Cancel</button> </div> </div> </div> </div> </div> </div> </section> ';},64853:(r,a,e)=>{e.d(a,{A:()=>d});const d='<div a-id="patientDetailsWrapper" s-id="utilities-merge-patient-detail.container" class="utilities-merge-patient-detail" ng-if="patientDetails"> <button a-id="removeButton" s-id="utilities-manage-provider-agents.delete" class="btn btn-secondary action" ng-if="showDelete" ng-click="delete()" type="submit"> <i class="fa fa-trash"></i> </button> <p a-id="name" s-id="utilities-merge-patient-detail.paragraph.patient-name" ng-bind="patientDetails.name | formatUserName : \'lastName, firstName middleName, suffix\' "></p> <p a-id="rcopiaId" s-id="utilities-merge-patient-detail.paragraph.patient-id" ng-bind="patientDetails.personId.simpleId"></p> <p a-id="externalId" ng-if="patientDetails.externalIdentifiers" ng-bind="patientDetails.externalIdentifiers | formatExternalId"></p> <p a-id="gender" s-id="utilities-merge-patient-detail.paragraph.patient-gender" ng-bind="patientDetails.gender"></p> <p a-id="dob" s-id="utilities-merge-patient-detail.paragraph.patient-birthdate" ng-bind="patientDetails.dateOfBirth | date:\'MM/dd/yyyy\'"></p> <p a-id="phone" s-id="utilities-merge-patient-detail.paragraph.patient-phone-number" ng-bind="patientDetails.phoneNumbers[
10].number"></p> <p a-id="addressWrapper" s-id="utilities-merge-patient-detail.paragraph.patient-address"> </p><p a-id="address1" ng-show="patientDetails.addressList[0].address1">{{patientDetails.addressList[0].address1}}</p> <p a-id="address2" ng-show="patientDetails.addressList[0].address2">{{patientDetails.addressList[0].address2}}</p> <p a-id="cityStateZip">{{patientDetails.addressList[0].city ? patientDetails.addressList[0].city + \', \':\'\'}} {{patientDetails.addressList[0].stateOrProvince}} {{patientDetails.addressList[0].poastalCode}}</p> <p></p> </div> ';}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.