Ciao Chris, mi chiedo se esiste un'API di gestione dello studio per realizzare uno studio come studio corrente nella clinica JMP. Impossibile trovarlo nella tabella del tuo blog.Grazie molto. Baoyue Li
JMP Clinical è stato rilasciato 11 anni fa appositamente per l'analisi e la revisione degli studi clinici in corso incentrati su dati standardizzati e strutturati. L'intento era che un revisore ricevesse dati per la revisione a intervalli regolari (ogni settimana o ogni mese) per cercare segnali di sicurezza e/o efficacia utilizzando report pre-programmati, consentendo al revisore di auto-servirsi e di approfondire i dati su -richiesta. La speranza era quella di accelerare il processo di revisione e di scoprire anomalie che altrimenti sarebbero potute sfuggire quando si esaminavano tabelle, elenchi e cifre statiche.
Inoltre, uno degli obiettivi del software era quello di alleviare l'onere imposto ai team di programmazione che producono i dati richiesti e i report standardizzati per i revisori. Ciò richiedeva molto tempo per eseguire programmi o modificare programmi/script/macro per soddisfare le esigenze dei revisori e su base frequente. I gruppi di programmazione e biostatistica in genere vogliono concentrarsi su dati e report che sono unici per lo studio invece che sulla solita tabella o grafico che è abbastanza coerente da studio a studio, consentendo loro di prestare un'attenzione più solida e senza distrazioni alle anomalie specifiche dello studio che richiedono maggiori conoscenze statistiche o algoritmiche.
Nella maggior parte dei casi, JMP Clinical ha raggiunto questi obiettivi, a meno che non si parli di organizzazioni che dispongono di numerosi studi che devono essere monitorati e/o che dispongono di frequenti aggiornamenti dei dati. Ciò impone un nuovo onere ai team di gestione dei dati e di biostatistica per aggiornare gli studi all'interno di JMP Clinical o pone l'onere sui revisori che non erano altrettanto competenti nel processo o non avevano tempo. Interessante è stata anche la possibilità di modificare alcuni report all'interno di JMP Clinical e/o di eseguire lo stesso modello di revisione su base pianificata. La richiesta di automazione e di ampliamento delle capacità di JMP Clinical è diventata una richiesta frequente.
Inserisci le API di JMP Clinical. Intorno a JMP Clinical 6, abbiamo introdotto il framework e l'infrastruttura per rendere possibile a livello di programmazione l'accesso basato su API a funzioni/processi comuni. In JMP Clinical 7, le API sono state rilasciate e rese disponibili utilizzando JMP Scripting Language (JSL). Nella versione 8 (l'ultima), sono state rilasciate più funzionalità. Questo post non entra nei dettagli dello sviluppo delle API. Si concentra invece sul loro utilizzo pratico in modo che tu possa trarne vantaggio.
Condividerò una serie di post su come richiamare e utilizzare le API. Iniziamo in modo semplice introducendo la sintassi di base e il loro utilizzo. Quindi passeremo ad usi più sofisticati durante l'utilizzo di JSL. Infine, combiniamo le due categorie di API richiamate all'interno di alcuni JSL.
Per coloro che non hanno familiarità con i termini Studio, Revisione, Report e Modello di revisione nel contesto di JMP Clinical, consultare questo collegamento per familiarizzarsi. Inoltre, chi non ha familiarità con JSL dovrebbe leggere e saperne di più a questo link . La conoscenza di entrambi è necessaria per comprendere l'utilizzo delle API.
Per questo post, iniziamo con le due categorie principali e cosa è possibile. Le due categorie principali sono: le funzioni relative alla gestione dello studio (JMPClinicalStudyManagerAPI) e le funzioni relative alla revisione (JMPClinicalReviewAPI). L'idea è di replicare ciò che può essere fatto all'interno dell'interfaccia utente (principalmente i clic sui pulsanti) dove non è necessaria una decisione da parte dell'utente (come aggiornare i metadati per gli studi con nuovi dati o aprire un modello di revisione ed eseguirlo per uno studio specifico). Di seguito sono riportate un paio di immagini che evidenziano i pulsanti relativi alla sezione Gestione dello studio e alla sezione Revisione.
Study Management Functions that Relate to JMPClinicalStudyMangerAPIStudy Management Functions that Relate to JMPClinicalStudyMangerAPIStudy Management Functions that Relate to JMPClinicalStudyMangerAPIStudy Management Functions that Relate to JMPClinicalStudyMangerAPIFunzioni di gestione dello studio correlate a JMPClinicalStudyMangerAPI
Review/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder Functions that Related to JMPClinicalReviewAPIReview/Review Builder Functions that Related to JMPClinicalReviewAPIFunzioni del generatore di revisione/revisione correlate a JMPClinicalReviewAPI
L'API ha lo scopo di svolgere attività di routine e automatizzarle, come aggiornare gli studi con nuovi metadati o aggiungere/rimuovere contenuti da un report all'interno di un modello di revisione. Di seguito è riportato un collegamento per le funzioni JMPClinicalStudyManagerAPI e un altro collegamento per le funzioni JMPClinicalReviewAPI come riferimento.
Allora, cosa può fare per noi l'API JMPClinicalStudyMangerAPI? Ci fornisce due serie di funzioni: funzioni di acquisizione (quelle che ottengono informazioni sugli studi) e funzioni di manipolazione (quelle che aggiungono, rimuovono o aggiornano gli studi). Ecco una tabella di cosa è possibile chiamare quella funzione con la sintassi di base. I due punti (:) separano la chiamata API e la chiamata alla funzione. Alcune funzioni hanno input e/o ritorni. Vedere i collegamenti sopra per i dettagli su cosa è previsto come input e ritorno.
|
API di gestione dello studio
|
|
Ottieni funzioni di informazione
|
Manipolare le funzioni di studio
|
|
Ottieni l'elenco dei nomi degli studi:
JMPClinicalStudyManagerAPI:getStudyList
|
Aggiungi studio:
API JMPClinicalStudyManager:addStudy
|
|
Ottieni il percorso della cartella SDTM:
JMPClinicalStudyManagerAPI:getSDTMFolder
|
Aggiorna i metadati dello studio:
API JMPClinicalStudyManager:refreshStudies
|
|
Ottieni il percorso della cartella ADaM:
JMPClinicalStudyManagerAPI:getADaMFolder
|
Elimina studio:
API JMPClinicalStudyManager:deleteStudies
|
|
Ottieni lo studio sulla data è stato aggiunto:
JMPClinicalStudyManagerAPI:getInitialDate
|
Aggiorna lo studio con una nuova istantanea:
API JMPClinicalStudyManager: aggiornamento Snapshot
|
|
Ottieni la data dell'ultimo aggiornamento dello studio:
JMPClinicalStudyManagerAPI:getLastUpdatedDate
|
Modificare le cartelle dei dati dello studio:
API JMPClinicalStudyManager:changeFolders
|
|
Ottieni lo stato abilitato per l'istantanea:
JMPClinicalStudyManagerAPI:getEnableSnapshot
|
Dati del profilo paziente precalcolati:
JMPClinicalStudyManagerAPI:precomputeProfileData
|
|
Ottieni il numero dell'istantanea:
API JMPClinicalStudyManager:getSnapshotNumber
|
|
|
Ottieni l'elenco dei domini riconosciuti:
JMPClinicalStudyManagerAPI:getDomainList
|
|
|
Ottieni la dimensione del file sul disco:
API JMPClinicalStudyManager:getSizeOnDisk
|
|
|
Ottieni l'ID utente del sistema operativo Windows che ha creato/aggiunto lo studio:
JMPClinicalStudyManagerAPI:getCreatedBy
|
|
|
Ottieni l'ID utente del sistema operativo Windows che ha aggiornato l'ultimo studio:
JMPClinicalStudyManagerAPI:getLastUpdatedBy
|
|
Ora diamo un'occhiata alla seconda categoria, Funzioni di revisione. Anche questo ha una serie di funzioni di acquisizione e manipolazione, ma per recensioni e rapporti.
|
Esamina l'API
|
|
Ottieni funzioni di informazione
|
Manipolare le funzioni di report/revisione
|
|
Ottieni un riferimento al Review Builder:
JMPClinicalReviewAPI:getReviewBuilder
|
Chiudi Generatore di recensioni:
JMPClinicalReviewAPI:closeReviewBuilder
|
|
Ottieni l'ID e il titolo del visualizzatore/creatore di recensioni:
JMPClinicalReviewAPI:getReviewViewerIDsAndTitles
|
Apri modello di recensione:
JMPClinicalReviewAPI:openReviewTemplate
|
|
Ottieni un riferimento al visualizzatore di recensioni:
JMPClinicalReviewAPI:getReviewViewer
|
Aggiungi un rapporto al Generatore di recensioni:
JMPClinicalReviewAPI:addReport
|
|
Ottieni il sommario del visualizzatore/costruttore di recensioni:
JMPClinicalReviewAPI:getReviewTableOfContents
|
Rimuovi il modulo di segnalazione Generatore di recensioni per titolo:
JMPClinicalReviewAPI:removeReportByReportTitle
|
|
Ottieni un elenco di ID report:
JMPClinicalReviewAPI:getReportIDList
|
Esegui il rapporto nel Generatore di recensioni per titolo:
JMPClinicalReviewAPI:runReportByReportTitle
|
|
Ottieni un elenco di titoli di report:
JMPClinicalReviewAPI:getReportTitleList
|
Esegui tutti i report nel Generatore di recensioni:
JMPClinicalReviewAPI:manAllReports
|
|
Ottieni un riferimento a un report per ID:
JMPClinicalReviewAPI:getReportByID
|
Salvare i contenuti di Review Builder come recensione:
API JMPClinicalReview:saveReview
|
|
Ottieni un riferimento a un rapporto per titolo:
JMPClinicalReviewAPI:getReportByTitle
|
Aprire una recensione nel Visualizzatore recensioni:
API JMPClinicalReview:openReview
|
|
Ottieni i dettagli del rapporto per titolo:
JMPClinicalReviewAPI:getReportDetailsByTitle
|
Inserisci sezione in un report:
JMPClinicalReviewAPI:insertSectionIntoReportByTitleAndSectionName
|
|
Ottieni un riferimento ai risultati del report:
JMPClinicalReviewAPI:getReportResultsByTitle
|
Rimuovi sezione da un report:
JMPClinicalReviewAPI:removeSectionFromReportByTitleAndSectionName
|
|
Ottieni un riferimento alla sezione Report:
JMPClinicalReviewAPI:getReportSectionByTitleAndSectionName
|
Aggiungi alla fine della sezione Report:
JMPClinicalReviewAPI:appendDisplayObjectToReportSectionByTitleAndSectionName
|
|
Ottieni l'elenco delle tabelle dati utilizzate nel report:
JMPClinicalReviewAPI:getDataTablesForSectionByTitleAndSectionName
|
Aggiungi all'inizio della sezione Report:
JMPClinicalReviewAPI: prependDisplayObjectToReportSectionByTitleAndSectionName
|
Quindi ora abbiamo elencate le diverse funzioni e cosa possono fare. Adesso è il momento di mostrare la sintassi base del loro utilizzo. La forma base è questa:
JMPClinical<CATEGORY>API:<FUNCTION> ({argomento(i)}, {spazio dei nomi}, completeListenerFunction());</FUNCTION></CATEGORY>
Ho già introdotto la chiamata di base alle funzioni API relative alla gestione dello studio sopra quando ho fatto riferimento a JMPClinicalStudyManagerAPI. Quindi, se voglio aggiornare i metadati degli studi registrati, sarà simile a questo:
JMPClinicalStudyManager:refreshStudies ({studyList},{},{});
Analizzeremo questo aspetto in modo più approfondito e parleremo degli usi comuni nella prossima serie di post. Per ora, desidero introdurre ciò che è disponibile e come richiamarlo in generale all'interno di uno script JSL. Il prossimo post riguarderà un esempio dell'API Study Management, parlerà di più dello spazio dei nomi e delle parti completeListener della chiamata API e inizierà a racchiuderlo in JSL e a utilizzare JSL al suo interno.
Fino al prossimo post, fate attenzione!
@BaoyueLi,
Scusa per il ritardo della risposta. Non ho visto questo commento in questo post. In JMP Clinical 18 (e 17) è possibile impostare lo studio corrente. Ecco un collegamento alla pagina API dalla guida per l'utente:
https://www.jmp.com/support/downloads/JMPC180_documentation/Content/JMPCUserGuide/AP_C_0013.htm
Eccone un uso generico:
JMPClinicalStudyManagerAPI:setCurrentStudy("nome studio")
Imposta lo studio corrente su quello specificato.
argomenti:
study - una stringa contenente il nome dello studio da impostare come studio corrente o Vuoto() su cui impostare lo studio corrente
ritorna:
Se lo studio corrente è stato impostato con successo, 1; altrimenti 0.
grazie Chris. Sembra che il comando "setCurrentStudy" non sia disponibile nella versione clinica 15 di JMP?