HMPDJFSP ;SLC/KCM.ASMR/RRB,CPC-PUT/POST for extract & freshness ;Jan 20, 2017 17:18:18
Source file <HMPDJFSP.m>
Package | Total | Call Graph |
---|---|---|
Enterprise Health Management Platform | 7 | (GET,GTQ)^HMPDJ ($$PID,NEWXTMP,POST,SETERR)^HMPDJFS (DOMOPD,DQINIT,MVFRUPD,QUINIT,SAVETASK)^HMPDJFSQ (DECODE,ENCODE)^HMPJSON INIT^HMPMETA $$EN^HMPSTMP ($$GETMAX,$$GETSIZE)^HMPUTILS |
Kernel | 2 | $$TM^%ZTLOAD ($$HTFM,$$NOW)^XLFDT |
VA FileMan | 2 | (FILE,UPDATE)^DIE CLEAN^DILF |
Master Patient Index VistA | 1 | $$GETDFN^MPIF001 |
Toolkit | 1 | $$GET^XPAR |
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Name | Comments | DBIA/ICR reference |
---|---|---|
PUTSUB(ARGS) | ; return location after creating a new subscription
; called by: ; API^HMPDJFS ; falls through to: ; QREJOIN ; calls: ; $$TM^%ZTLOAD ; SETERR^HMPDJFS ; $$GETDFN^MPIF001 ; SETERR^HMPDJFS ; OPDOMS^HMPDJFSD ; PTDOMS^HMPDJFSD ; SETPAT ; NEWXTMP^HMPDJFS ; SETMARK ; INIT^HMPMETA ; $$HTFM^XLFDT ; SAVETASK^HMPDJFSQ ; $$PID^HMPDJFS ; output: ; fn returns : /hmp/subscription/{hmpSrvId}/patient/{sysId;dfn} ; : "" if error, errors in ^TMP("HMPFERR",$J) ; .ARGS("server") : name of HMP server ; .ARGS("localId") : dfn for patient to subscribe or "OPD" (operational data) ; .ARGS("icn") : icn for patient to subscribe ; .ARGS("domains") : optional array of domains to initialize (deprecated) |
|
QREJOIN | ||
QUINIT(HMPBATCH,HMPFDFN,HMPFDOM) | ; Queue the initial extracts for a patient
; called by: ; VERMATCH^HMPDJFSG ; CVTSEL^HMPP3I ; calls: ; QUINIT^HMPDJFSQ |
|
SETDOM(ATTRIB,DOMAIN,VALUE,HMPMETA) | ; Set value for a domain ; cpc TA41760
; called by: ; QUINIT^HMPDJFSQ ; QUINIT^HMPMETA ; DQINIT^HMPDJFSQ ; DOMPT ; MOD4STRM ; calls: none ; input: ; ATTRIB: "status" or "count" attribute ; VALUE: ; for status, VALUE: 0=waiting, 1=ready ; for count, VALUE: count of items ; don't update to finished value if just tracking metastamp |
|
SETMARK(TYPE,HMPFDFN,HMPBATCH) | ; Post markers for begin and end of initial synch
; called by: ; PUTSUB ; PUTSUB-QREJOIN ; QUINIT^HMPMETA ; DQINIT^HMPDJFSQ ; calls: ; POST^HMPDJFS ; SETTIDY |
|
DQINIT | ; task Dequeue initial extracts
; called by: none ; calls: ; DQINIT^HMPDJFSQ |
|
DOMPT(HMPFADOM) | ; Load a patient domain
; called by: ; DQBACKDM^HMPDJFS1 ; DQINIT^HMPDJFSQ ; calls: ; $$CHNKCNT ; GET^HMPDJ ; SETDOM ; CHNKFIN |
|
DOMOPD(HMPFADOM) | ; Load an operational domain in smaller batches
; called by: none ; calls: ; DOMOPD^HMPDJFSQ |
|
CHNKCNT(DOMAIN) | ; -- get patient object chunk count trigger *BEGIN*S68-JCH*
; called by: ; DOMPT ; calls: ; $$GET^XPAR ; input: ; DOMAIN := current domain name being processed |
|
CHNKINIT(HMP,HMPI) | ; -- init chunk section callback *BEGIN*S68-JCH*
; called by: ; GET^HMPDJ ; DQINIT^HMPDJFSQ ; CHNKCHK ; calls: none ; input by ref: ; HMP := $NA of location for chunk of objects ; HMPI := number of objects in @HMP |
|
CHNKCHK(HMP,HMPI) | ; -- check if chunk should be queued callback *BEGIN*S68-JCH*
; called by: ; ADD^HMPDJ ; HMP1^HMPDJ02 ; calls: ; GTQ^HMPDJ ; CHNKFIN ; CHKXTMP ; CHNKINIT ; input by ref: ; HMP := $NA of location for chunk of objects ; HMPI := number of objects in @HMP |
|
CHNKFIN | ; -- finish chunk section callback *BEGIN*S68-JCH*
; called by: ; DOMPT ; CHNKCHK ; calls: ; MOD4STRM ; POSTSEC |
|
MOD4STRM(DOMAIN) | ; modify extract to be ready for stream
; called by: ; DOMOPD^HMPDJFSQ ; CHNKFIN ; calls: ; SETDOM ; expects: ; HMPBATCH, HMPFSYS, HMPFZTSK ; results are in: ; ^XTMP("HMPFX~hmpsrv~dfn",DFN,DOMAIN,...) |
|
POSTSEC(DOMAIN,ETOTAL,SECSIZE) | ; post domain section to stream and set tidy nodes
; called by: ; DOMOPD^HMPDJFSQ ; CHNKFIN ; calls: ; POST^HMPDJFS ; SETTIDY |
|
SETTIDY(DOMAIN,NODES) | ; Set tidy nodes for clean-up of the extracts in ^XTMP
; called by: ; SETMARK ; POSTSEC ; calls: none ; expects: ; HMPBATCH,HMPFZTSK |
|
MVFRUPD(HMPBATCH,HMPFDFN) | ; Move freshness updates over active stream
; called by: none ; calls: ; MVFRUPD^HMPDJFSQ |
|
BLDSERR(DFN,DOMAIN,ERRJSON) | ; Create syncError object in ERRJSON
; called by: none ; calls: ; DECODE^HMPJSON ; ENCODE^HMPJSON ; expects: ; HMPBATCH, HMPFSYS, HMPFZTSK |
|
POSTERR(COUNT,DFN) | ; put error into ^XTMP(batch)
; called by: ; DQINIT^HMPDJFSQ ; calls: ; POST^HMPDJFS |
|
INITDONE(HMPBATCH) | ; Return 1 if all domains are done
; called by: ; DQINIT^HMPDJFSQ ; calls: none |
|
SETPAT(DFN,SRV,NEWSUB) | ; Add patient to 800000 if not there
; called by: ; EN^HMPMETA ; PUTSUB ; calls: ; SETERR^HMPDJFS ; UPDOPD ; ADDPAT |
|
UPDOPD(SRV,STS) | ; Update status of operational synch
; called by: ; UNSUB^HMPMETA ; UPDSTS ; SETPAT ; calls: ; FILE^DIE ; SETERR^HMPDJFS ; CLEAN^DILF |
|
ADDPAT(DFN,SRV) | ; Add a patient as subscribed for server
; called by: ; SETPAT ; calls: ; $$NOW^XLFDT ; UPDATE^DIE ; SETERR^HMPDJFS ; CLEAN^DILF |
|
UPDSTS(DFN,SRVNM,STS) | ; Update the sync status
; called by: ; PUTSUB-QREJOIN ; MVFRUPD^HMPDJFSQ ; calls: ; SETERR^HMPDJFS ; UPDOPD ; $$NOW^XLFDT ; FILE^DIE ; CLEAN^DILF |
|
CHKXTMP(HMPBATCH,HMPFZTSK) | ; -- ^XTMP check at end each domain loop iteration ; if too big HANG
; called by: ; DQINIT^HMPDJFSQ ; CHNKCHK |
|
GETSECS() | ; return default # of seconds to requeue in future or hang when processing domains
; called by: ; CHKSP^HMPUTILS ; CHKXTMP |
Name | Field # of Occurrence |
---|---|
$$TM^%ZTLOAD | PUTSUB+27 |
FILE^DIE | UPDOPD+12, UPDSTS+17 |
UPDATE^DIE | ADDPAT+15 |
CLEAN^DILF | UPDOPD+14, ADDPAT+17, UPDSTS+19 |
GET^HMPDJ | DOMPT+17 |
GTQ^HMPDJ | CHNKCHK+19 |
$$PID^HMPDJFS | PUTSUB+86, QREJOIN+32 |
NEWXTMP^HMPDJFS | PUTSUB+68 |
POST^HMPDJFS | SETMARK+14, POSTSEC+14, POSTERR+12 |
SETERR^HMPDJFS | PUTSUB+27, PUTSUB+36, PUTSUB+37, PUTSUB+41, PUTSUB+43, PUTSUB+66, SETPAT+11, SETPAT+14, SETPAT+21, UPDOPD+13 , ADDPAT+16, UPDSTS+12, UPDSTS+18 |
DOMOPD^HMPDJFSQ | DOMOPD+5 |
DQINIT^HMPDJFSQ | DQINIT+5 |
MVFRUPD^HMPDJFSQ | MVFRUPD+5 |
QUINIT^HMPDJFSQ | QREJOIN+16, QREJOIN+20, QREJOIN+28, QUINIT+7 |
SAVETASK^HMPDJFSQ | PUTSUB+86 |
DECODE^HMPJSON | BLDSERR+12 |
ENCODE^HMPJSON | BLDSERR+20 |
INIT^HMPMETA | PUTSUB+77 |
$$EN^HMPSTMP | PUTSUB+61 |
$$GETMAX^HMPUTILS | CHKXTMP+8 |
$$GETSIZE^HMPUTILS | CHKXTMP+8 |
$$GETDFN^MPIF001 | PUTSUB+35 |
$$HTFM^XLFDT | PUTSUB+83 |
$$NOW^XLFDT | ADDPAT+14, UPDSTS+16 |
$$GET^XPAR | CHNKCNT+8, GETSECS+5 |
Name | Line Occurrences (* Changed, ! Killed) |
---|---|
^DPT - [#2] | PUTSUB+37 |
^HMP(800000 - [#800000] | PUTSUB+42, SETPAT+10, SETPAT+14, SETPAT+16, SETPAT+18, SETPAT+21, SETPAT+22, SETPAT+24, UPDSTS+12 |
^TMP("HMPERR" | BLDSERR+21, BLDSERR+22*, POSTERR+8, POSTERR+9 |
^XTMP( | PUTSUB+66, PUTSUB+67, PUTSUB+71*, PUTSUB+72*, PUTSUB+73*, PUTSUB+74*, PUTSUB+75*, PUTSUB+78, PUTSUB+82, PUTSUB+83* , PUTSUB+84*, QREJOIN+23, SETDOM+15*, SETDOM+16*, CHNKINIT+14, MOD4STRM+15, MOD4STRM+16*, MOD4STRM+18*, MOD4STRM+19, POSTSEC+9 , SETTIDY+12*, SETTIDY+13*, SETTIDY+14*, BLDSERR+9, BLDSERR+14!, POSTERR+10*, POSTERR+11*, INITDONE+7, CHKXTMP+8!, CHKXTMP+9 |
^XTMP("HMPFS~" | QREJOIN+14* |
Name | Line Occurrences |
---|---|
$$CHNKCNT | DOMPT+16 |
$$GETSECS | CHKXTMP+11 |
@( | PUTSUB+48 |
ADDPAT | SETPAT+23 |
CHKXTMP | CHNKCHK+23 |
CHNKFIN | DOMPT+20, CHNKCHK+21 |
CHNKINIT | CHNKCHK+25 |
MOD4STRM | CHNKFIN+11 |
POSTSEC | CHNKFIN+13 |
SETDOM | DOMPT+18, MOD4STRM+19 |
SETMARK | PUTSUB+77, QREJOIN+30 |
SETPAT | PUTSUB+59 |
SETTIDY | SETMARK+16, POSTSEC+15 |
UPDOPD | SETPAT+17, UPDSTS+13 |
UPDSTS | QREJOIN+15 |
Name | Field # of Occurrence |
---|---|
^( | INITDONE+7 |
^("hanging" | CHKXTMP+9* |
>> | Not killed explicitly |
* | Changed |
! | Killed |
~ | Newed |
Name | Field # of Occurrence |
---|---|
ARGS | PUTSUB~, PUTSUB+77 |
ARGS( | PUTSUB+71 |
ARGS("HMPPriority" | PUTSUB+81 |
ARGS("HMPSVERS" | PUTSUB+33 |
ARGS("domains" | PUTSUB+55, PUTSUB+56 |
ARGS("icn" | PUTSUB+35 |
ARGS("jobId" | PUTSUB+73 |
ARGS("localId" | PUTSUB+32 |
ARGS("rootJobId" | PUTSUB+74 |
ATTRIB | SETDOM~, SETDOM+15, SETDOM+16 |
CNT | POSTERR+6~, POSTERR+8*, POSTERR+9, POSTERR+10, POSTERR+11 |
COUNT | MOD4STRM+12~, MOD4STRM+15*, MOD4STRM+16, MOD4STRM+18, MOD4STRM+19, POSTSEC+8~, POSTSEC+9*, POSTSEC+10, POSTSEC+14, BLDSERR+8~ , BLDSERR+21*, BLDSERR+22, POSTERR~, POSTERR+12 |
DFN | MOD4STRM+12~, MOD4STRM+14*, POSTSEC+8~, POSTSEC+12*, POSTSEC+14, BLDSERR~, BLDSERR+17, POSTERR~, POSTERR+12, SETPAT~ , SETPAT+13, SETPAT+21, SETPAT+22, SETPAT+23, SETPAT+24, ADDPAT~, ADDPAT+10, ADDPAT+11, ADDPAT+12, UPDSTS~ , UPDSTS+13, UPDSTS+15, UPDSTS+16 |
DIERR | UPDOPD+10~, ADDPAT+9~ |
DOMAIN | SETDOM~, SETDOM+15, SETDOM+16, CHNKCNT~, CHNKCNT+8, MOD4STRM~, MOD4STRM+13, MOD4STRM+15, MOD4STRM+16, MOD4STRM+18 , POSTSEC~, POSTSEC+9, POSTSEC+14, POSTSEC+15, SETTIDY~, SETTIDY+13, BLDSERR~, BLDSERR+9, BLDSERR+14, BLDSERR+17 , BLDSERR+18 |
DOMAINS | PUTSUB+29~, QREJOIN+16, QREJOIN+25, QREJOIN+26!, QREJOIN+27 |
DOMAINS( | PUTSUB+56!, QREJOIN+17, QREJOIN+19 |
DOMAINS(1 | QREJOIN+26* |
DOMONLY | MOD4STRM+12~, MOD4STRM+13*, MOD4STRM+19 |
DONE | INITDONE+5~, INITDONE+6*, INITDONE+7*, INITDONE+8 |
EMPB | PUTSUB+70~*, PUTSUB+71* |
ERR | BLDSERR+8~, BLDSERR+13, BLDSERR+20, SETPAT+9~, UPDOPD+10~, UPDOPD+13, ADDPAT+9~, ADDPAT+16, UPDSTS+11~, UPDSTS+18 |
ERRJSON | BLDSERR~, BLDSERR+22 |
ERRMSG | BLDSERR+8~, BLDSERR+15*, BLDSERR+16, BLDSERR+19 |
ERROBJ | BLDSERR+8~ |
ERROBJ("error" | BLDSERR+15 |
ERRVAL | BLDSERR+8~, BLDSERR+9*, BLDSERR+10, BLDSERR+11* |
ETOTAL | POSTSEC~, POSTSEC+10*, POSTSEC+14 |
FDA | SETPAT+9~, UPDOPD+10~, ADDPAT+9~ |
FDA( | ADDPAT+12*, ADDPAT+13*, ADDPAT+14*, UPDSTS+15*, UPDSTS+16* |
FDA(800000 | UPDOPD+11* |
FDAIEN | ADDPAT+9~ |
FDAIEN( | ADDPAT+11* |
FILTER | DOMPT+10~, DOMPT+17 |
FILTER("domain" | DOMPT+12* |
FILTER("noHead" | DOMPT+11* |
FILTER("patientId" | DOMPT+13* |
HMP | CHNKINIT~, CHNKINIT+14*, CHNKINIT+15, CHNKCHK~, CHNKCHK+25 |
HMPBATCH | PUTSUB+29~, PUTSUB+44*, PUTSUB+66, PUTSUB+67, PUTSUB+68, PUTSUB+71, PUTSUB+72, PUTSUB+73, PUTSUB+74, PUTSUB+75 , PUTSUB+77, PUTSUB+78, QREJOIN+15, QREJOIN+16, QREJOIN+20, QREJOIN+23, QREJOIN+28, QUINIT~, QUINIT+7, SETDOM+15 , SETDOM+16, SETMARK~, SETMARK+13, SETMARK+14, CHNKINIT+14, CHNKCHK+23, MOD4STRM+14, MOD4STRM+15, MOD4STRM+16, MOD4STRM+18 , MOD4STRM+19, POSTSEC+9, POSTSEC+12, POSTSEC+13, SETTIDY+12, MVFRUPD~, MVFRUPD+5, BLDSERR+9, BLDSERR+14, POSTERR+7 , POSTERR+10, POSTERR+11, INITDONE~, INITDONE+7, CHKXTMP~, CHKXTMP+8, CHKXTMP+9 |
HMPCHNK | DOMPT+10~, DOMPT+15*, DOMPT+20, CHNKINIT+11, CHNKINIT+13*, CHNKINIT+14, CHNKCHK+14, CHNKFIN+9, CHNKFIN+11, CHNKFIN+13 |
HMPCHNK("trig | ger count" , DOMPT+16*, CHNKCHK+17, CHNKFIN+13 |
HMPDSAVE | QREJOIN+24~, QREJOIN+25* |
HMPDSAVE( | QREJOIN+29, QREJOIN+30 |
>> HMPENVIR("converting" | SETMARK+11 |
HMPFADOM | DOMPT~, DOMPT+12, DOMPT+15, DOMPT+16, DOMPT+18, DOMOPD~, DOMOPD+5 |
HMPFDFN | PUTSUB+29~, PUTSUB+32*, PUTSUB+34, PUTSUB+35*, PUTSUB+36, PUTSUB+37, PUTSUB+44, PUTSUB+48, PUTSUB+59, PUTSUB+77 , PUTSUB+86, QREJOIN+14, QREJOIN+15, QREJOIN+16, QREJOIN+20, QREJOIN+23, QREJOIN+28, QREJOIN+30, QREJOIN+32, QUINIT~ , QUINIT+7, SETMARK~, SETMARK+14, DOMPT+13, MVFRUPD~, MVFRUPD+5 |
HMPFDOM | QREJOIN+16~*, QREJOIN+18~, QREJOIN+20, QREJOIN+24~, QREJOIN+27*, QREJOIN+28, QUINIT~, QUINIT+7 |
HMPFDOM(1 | QREJOIN+19* |
HMPFERR | PUTSUB+29~, PUTSUB+34, PUTSUB+59, QREJOIN+12 |
HMPFEST | DOMPT+10~ |
>> HMPFHMP | PUTSUB+40 |
>> HMPFSYS | BLDSERR+17 |
HMPFZTSK | CHNKINIT+14, CHNKCHK+23, MOD4STRM+15, MOD4STRM+16, MOD4STRM+18, POSTSEC+9, POSTSEC+14, SETTIDY+14, BLDSERR+9, BLDSERR+14 , POSTERR+10, POSTERR+11, POSTERR+12, CHKXTMP~, CHKXTMP+8, CHKXTMP+9 |
HMPI | CHNKINIT~, CHNKINIT+16*, CHNKCHK~, CHNKCHK+17, CHNKCHK+25 |
HMPMETA | SETDOM~, SETDOM+15, DOMPT+18 |
HMPOK | CHKXTMP+5~*, CHKXTMP+6, CHKXTMP+8* |
HMPPRITY | PUTSUB+29~, PUTSUB+81* |
HMPQBTCH | PUTSUB+29~, PUTSUB+45*, PUTSUB+82, PUTSUB+83, PUTSUB+84 |
>> HMPQREF | POSTSEC+16, CHKXTMP+10 |
HMPSRV | PUTSUB+29~, PUTSUB+40*, PUTSUB+41, PUTSUB+42, PUTSUB+44, PUTSUB+45, PUTSUB+59, PUTSUB+86, QREJOIN+32, SETMARK+12~ , SETMARK+13*, SETMARK+14, MOD4STRM+12~, MOD4STRM+14*, POSTSEC+8~, POSTSEC+13*, POSTSEC+14, POSTERR+6~, POSTERR+7*, POSTERR+12 |
HMPSRV("ien" | PUTSUB+42*, PUTSUB+43, QREJOIN+14 |
HMPSTMP | PUTSUB+29~, PUTSUB+61* |
HMPSVERS | PUTSUB+29~, PUTSUB+33*, PUTSUB+71*, PUTSUB+72, QREJOIN+16, QREJOIN+29 |
I | PUTSUB+29~, PUTSUB+56*, QREJOIN+17*, QREJOIN+19, QREJOIN+29*, QREJOIN+30 |
IEN | SETPAT+9~, SETPAT+10*, SETPAT+11, SETPAT+14, SETPAT+16, SETPAT+17, SETPAT+18, SETPAT+21, SETPAT+22, SETPAT+23 , SETPAT+24 |
IENROOT | SETPAT+9~ |
IENS | ADDPAT+9~, ADDPAT+10*, ADDPAT+12, ADDPAT+13, ADDPAT+14 |
NEWSUB | PUTSUB+29~, PUTSUB+59, PUTSUB+86, QREJOIN+12, QREJOIN+23, SETPAT~, SETPAT+16*, SETPAT+17, SETPAT+22*, SETPAT+23 |
NODE | POSTERR+6~, POSTERR+9*, POSTERR+10 |
NODES | SETMARK+12~, SETMARK+14, SETMARK+16, POSTSEC+8~, POSTSEC+14, POSTSEC+15, SETTIDY~ |
NODES( | SETTIDY+9, SETTIDY+10, SETTIDY+11 |
RSLT | DOMPT+10~, DOMPT+17, DOMPT+20 |
SECS | GETSECS+5~*, GETSECS+6 |
SECSIZE | POSTSEC~, POSTSEC+11*, POSTSEC+14 |
SEQ | SETTIDY+8~, SETTIDY+11*, SETTIDY+12, SETTIDY+13, SETTIDY+14 |
SRV | SETPAT~, SETPAT+10, SETPAT+11, SETPAT+14, UPDOPD~, UPDOPD+11, ADDPAT~, ADDPAT+10, UPDSTS+11~, UPDSTS+12* , UPDSTS+13, UPDSTS+15, UPDSTS+16 |
SRVNM | UPDSTS~, UPDSTS+12 |
STREAM | SETTIDY+8~, SETTIDY+10*, SETTIDY+12, SETTIDY+13, SETTIDY+14 |
STS | UPDOPD~, UPDOPD+11, UPDSTS~, UPDSTS+13, UPDSTS+15 |
SYNCERR | BLDSERR+8~ |
SYNCERR("collection" | BLDSERR+18* |
SYNCERR("error" | BLDSERR+19* |
SYNCERR("uid" | BLDSERR+17* |
TYPE | SETMARK~, SETMARK+14, SETMARK+15 |
U | PUTSUB+83, SETTIDY+10, SETTIDY+11, SETPAT+16 |
VALUE | SETDOM~, SETDOM+15, SETDOM+16 |
X | SETMARK+12~, POSTSEC+8~, SETTIDY+8~, SETTIDY+9*, SETTIDY+10, SETTIDY+11, INITDONE+5~, INITDONE+6*, INITDONE+7* |