User Tools

Site Tools


auto_slides

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
auto_slides [2025/05/11 17:20]
ali
auto_slides [2025/11/23 22:08] (current)
ali
Line 1: Line 1:
 ===== Linking and sharing (automation) ===== ===== Linking and sharing (automation) =====
  
-{{:study_3.0.png?​nolink&​400|}}+Sharing content is arguably one of the most important applications of digital pathology, if not for the Web in general.
  
-Sharing content is arguably [[https://​realdata.pathomation.com/​sharing-facilities-in-pma-studio/​|one of the most important applications of digital pathology]],​ if not for the Web in general.+{{:share-new-1.png?200|}}
  
-Automation sharing functionality ​in your workflows can significantly increase your productivity.+PIMS LS allows you to share content ​in a variety of waysThere is a dedicated group for sharing content on the ribbon:
  
-Let's see how this works for PMA.vue and PMA.studio:+When you just want to share what you’re currently looking at, chances are that you can get by with one of the quick share buttons:
  
-==== Auto-navigate ====+  * If you want to share the current folder you’re navigating, click on the “Share folder” button 
 +  * If you want to share the current slide that you’re looking at, click on the “Share slide” button 
 +  * If you want to share the current grid that you’re looking at, click on the “Share grid” button 
 +  * Etc.
  
-In some instances, you want to point people to PMA.studio, log in, and navigate directly to a particular slide or folder.+==== Auto Navigation ====
  
-This use is mostly suited when everybody in your organization has access ​to PMA.studio, and you want people to use their own credentials.+We have introduced a new feature that allows users to share a slide or an entire folder with either read-only or full-access ​permissions.
  
-In order for this to work, people must +  - **Read-only ​access:** The recipient can view the shared ​slide or folder ​but cannot make any changes. 
-  ​Have access ​to PMA.studio +  ​**Full access:** The recipient will be required to log in and will then be able to interact with the shared ​slide or folder ​just like a regular user, including performing all permitted actions.
-  ​Have access to the PMA.core tile server on the slide/folder ​resides +
-  * Have access to the slide/folder ​that you're referring them to+
  
 +When you choose Share Current Slide or Share Folder, the system will prompt you to select whether you want to share it in read-only mode or with full access.
  
-=== To a particular slide ===+{{:​access_mode.png?​200|}}
  
-When  +===== Slide Share =====
-  * PMA.studio runs at ''​https://​server/​pma.studio'',​ and  +
-  * Your content resides on PMA.core ''​https://​server/​pma.core'',​ and +
-  * Your slide is called ''​slides/​case/​my-scan.svs''​+
  
-Then your direct link to that slide becomes+If the user selects read-only mode, the shared ​slide will be accessible in view-only format, and the recipient will not be able to make any modifications.
  
-''​https://​server/​pma.studio/?serverUrl=https%3A%2F%2Fserver%2Fpma.core%2F&​path=slides%2Fcase%2Fmy-scan.svs''​+{{:slide_share_readonly.png?200|}}
  
-=== To a particular folder ===+If the slide is shared in full-access mode, the recipient will be prompted to log in to the application. Upon successful login, they will be taken directly to the shared slide, where they can make any necessary modifications as permitted.
  
-You can't do this yetBut don't despair; this is on our feature list for a future version of PMA.studio+{{:​share_slide_full_access.png?200|}}
  
-==== Automate the share dialog ​====+===== Folder Share =====
  
-The content here only describes ​the syntax to automate share link creation. For a discussion and comprehensive ​user story, see [[https://​realdata.pathomation.com/​sharing-facilities-in-pma-studio/​|our blog article on the subject]].+If the user selects read-only mode, the shared folder will be accessible ​in view-only format. The recipient will be able to open and view each slide in the folder but will not have access to any editing tools or modification options.
  
-Note that when creating share links in this manner, users that receive the link will +{{:​shared_folder_read_only.png?200|}}
-  * not have access to all PMA.studio features (only the specific slide(s) that you refer to) +
-  * impersonate the account used to create the link with in the first place (probably your own) +
-  * log access to the shared content under the impersonated credentials+
  
-=== For particular slide ===+If the user selects full-access mode for sharing ​folder, the recipient will be prompted to log in and will be taken directly to the shared folder. Once logged in, they will have full access to all available tools and will be able to make modifications as needed.
  
-When all you may want to do is show a button in your own user interface that pops up a viewport to the content that you want to launch, you can create sharing links on via the PMA.studio back-end API.+{{:​share_folder_full_access_mode.png?200|}}
  
-When  +===== Custom Share =====
-  * PMA.studio runs at ''​https://​server/​pma.studio'',​ and  +
-  * Your content resides on PMA.core ''​https://​server/​pma.core'',​ and +
-  * You have credentials to the above PMA.core via ''​usr''​ / ''​pwd'',​ and +
-  * Your slide is called ''​slides/​case/​my-scan.svs''​+
  
-You can create a sharing link to your slide via the call+{{:​share-new.png?​200|}}
  
-''​https://​server/​pma.studio/​api/​Share/​CreateLinkForSlide?​userName=usr&​password=pwd&​serverUrl=https%3A%2F%2Fserver%2Fpma.core%2F&​pathOrUid=slides%2Fcase%2Fmy-scan.svs''​+It allows for further customization of your share link, including:
  
-The URL creates and returns ​the share link to be passed along other forms of communication.+  * Password-protect your link 
 +  * Expire ​the link (e.g. students can only access it for the duration ​of a test) 
 +  * Include or exclude annotations from the shared link 
 +  * Use a QR code instead of a plain text link 
 +  * Etc.
  
-We cover a lot more ground in [[https://realdata.pathomation.com/​sharing-facilities-in-pma-studio/​|our blog article]], if interested in this topic.+{{:share_expire.png?200|}}
  
-=== For a particular folder ​===+===== Share administration =====
  
-Sometimes ​it's more useful ​to share an entire folder instead of individual slides. The content ​from a folder can e.g. constitute a single patient case.+We’ve worked hard on making the sharing concept in PIMS LS broadly applicable to a variety of content. We’ve also worked on making ​it easy to share content.
  
-When  +So with all this sharing going on thenit’s only natural ​to be asking after a while “wait, what am I actually sharing?”.
-  * PMA.studio runs at ''​https://​server/​pma.studio'',​ and  +
-  * Your content resides ​on PMA.core ''​https://​server/​pma.core''​and +
-  * You have credentials ​to the above PMA.core via ''​usr''​ / ''​pwd'',​ and +
-  * Your folder is called ''​slides/​my-case''​+
  
-You can create a sharing link to your folder via the call+On the configure tab, in the “Panels” group, you can active ​the “Shared links panel”
  
-''​https://​server/​pma.studio/​api/​Share/​CreateLinkForFolder?userName=usr&​password=pwd&​serverUrl=https%3A%2F%2Fserver%2Fpma.core%2F&​path=slides%2Fmy-case''​+{{:toggle_share_panel.png?400|}}
  
 +Once clicked, you get a new panel with an overview of everything you’ve shared so far.
  
-As with creating links to individual slides, this URL creates and returns the share link to be passed along other forms of communication.+{{:​shared_links_panel.png?400|}}
  
-{{ ::​stud2_sharing_folder.png?​direct&​400 |}}+The buttons behind each link allow various operations.
  
-We cover lot more ground ​in [[https://realdata.pathomation.com/​sharing-facilities-in-pma-studio/​|our ​blog article]]if interested ​in this topic.+One application of this is to recycle ​share link and re-use as you see fit. 
 + 
 +{{:​recycle_share.png?​400|}} 
 + 
 +You can also (temporarily) invalidate links, or delete them altogether. 
 + 
 +The history is linked to your PMA.core login, so if at first you don’t see anything, make sure that you’re connected to the PMA.core instance for which you expect to see share links. 
 + 
 +===== Monitoring ===== 
 + 
 +On the back-end of PIMS LS, administrators can get an overview of all created shares across all users. They can also use this view to temporarily suspend or even delete shares. 
 + 
 +{{:​monitoring.png?​400|}} 
 + 
 +===== Automation ===== 
 + 
 +While we highly advocate the implementation of the PMA.UI framework ​in third-party software like (AP)L(I)MS, PACS, VNA, and other digital pathology consumers, we realize that this is not trivial. In a proof-of-concept phase, all you may want to do is show a button in your own user interface that then subsequently just pops up a viewport to the content that you want to launch. Easy-peasy, as they say. 
 + 
 +Let’s say that you have an existing synoptic reporting environment that looks like this: 
 + 
 +In order to convince your administration that adding digital pathology to it is a really good idea, you want to upgrade the interface to this: 
 + 
 +With PIMS LS, you can now get exactly this effect. 
 + 
 +Let’s switch to Jupiter to see how this works: 
 + 
 +{{:​jupiter.png?​400|}} 
 + 
 +First some homekeeping. We import the pma_python core module, and connect to the PMA.core instance that holds our slide. 
 + 
 +Our slide is stored at “cases_eu/breast/06420637F/​HE_06420637F0001S.mrxs”Let’s make sure that the slide exists ​in that location by requesting its SlideInfo dictionary:​ 
 + 
 +{{:​jupiter1.png?​400|}} 
 + 
 +Alternatively,​ we can also write some exploratory code to get to the right location: 
 + 
 +{{:​jupiter2.png?​400|}} 
 + 
 +===== The PIMS LS API ===== 
 + 
 +Ok, we’ve identified our slide. Now let’s go to the PIMS LS. Unfortunately,​ PMA.python doesn’t have a PIMS LS module yet, so we’ll have to interface with the API directly for the time being. 
 + 
 +The back-end call that we need is /​API/​Share/​CreateLinkForSlide and takes on the following parameters:​ 
 + 
 +{{:​pimsls_api.png?​400|}} 
 + 
 +We create the URL that invokes the API by hand first. We can do this accordingly:​ 
 + 
 +{{:​pimsls_api1.png?​400|}} 
 + 
 +Never mind that pma._pma_q() method that we use. It’s a fast and easy way for ourselves to properly encode HTTP querystring arguments. You’re free to piggy-back on ours, or use your own preferred method. 
 + 
 +After execution of the code, you get a URL that looks like this: 
 + 
 +https://​yourserver/​pma.studio.2/api/​Share/​CreateLinkForSlide?​userName=user1&​password=user1&​serve.rUrl=https%3A%2F%2Fyourserver%2Fpma.core.2&​pathOrUid=IRVGLPWBFT 
 + 
 +The URL by itself doesn’t do anything, but create the share link. So you still need to invoke it. You can do this by either copying the URL to a webbrowser, or by invoking it from Python as well: 
 + 
 +{{:​pimsls_api2.png?​400|}} 
 + 
 +Again: it’s the return result from the URL that you want to distribute to others and not the initial URL. 
 + 
 +To confirm that it worked, you go back to PIMS LS and check your panel with the share link overview: 
 + 
 +{{:​shared_links_panel1.png?​400|}} 
 + 
 +But you can also just pull up the resulting URL in a new browser window: 
 + 
 +{{:​shared_links_panel2.png?​400|}} 
 + 
 +Yay, it worked! 
 + 
 +===== Automating folders ===== 
 + 
 +You can also create links that point to folders. 
 + 
 +         
 +Say that we want to offer a case-representation of breast cancer patient 06420637F. We use Share/​CreateLinkForFolder and point to a folder ​    
 + 
 +{{:​automating_folders.png?​400|}} ​    
 + 
 +The result again appears on the PIMS LS side. And clicking on it results in a mini-browser interface:  
 + 
 +{{:​automating_folders1.png?​400|}} 
 + 
 +===== What’s next ===== 
 + 
 +After PMA.core, we’re starting to provide back-end API calls into PIMS LS as well. Even though as we prefer developers to integrate with PMA.UI directly, there are scenarios where automation through PMA.UI makes sense. When you’re in one of the following scenarios when: 
 + 
 +  * PIMS LS is your main cockpit interface to work with slide content, but there are a few other routes (like an intranet) through which you want to provide quick access to content, too. 
 +  * You have an (AP)LI(M)S, PACS, VNA, or other system and you’re in a PoC phase to add digital pathology capabilities to your own platform, PIMS LS automation may be a quicker route to go than adapting ​our SDKs. 
 + 
 +Do keep in mind however that we’re providing the PIMS LS back-end mostly for convenienceat least for the time being. There are any number of ways in which you may want to integrate digital pathology in your infrastructure and workflows. For a high level of customization,​ you’re really going to have to move up to PMA.UI, as well as a back-end counterpart like PMA.python, PMA.php, or PMA.java.
auto_slides.1746973212.txt.gz · Last modified: 2025/05/11 17:20 by ali