Recent Discussions
Meet the Microsoft Learn experts
The Microsoft Learn Community experiences are supported by technical subject matter experts, which are present throughout our community resources based on their area of expertise. Connect with this worldwide network of experts who have technical and training experience, are passionate about the community, and can offer unique knowledge to help you achieve your skilling goals. Find all the Microsoft Learn experts or join them in one of our learning rooms. Microsoft Learn expert Topic Area André Baltieri Azure Brian Gorman Azure Elkhan Yusubov Azure Hamid Sadeghpour Saleh Azure Jonah Andersson Azure Jorge Maia Azure Kazeem Adegboyega Azure Luke Murray Azure Marcos Nogueira Azure Martin Dimovski Azure Mohsen Akhavan Azure Rodrigo Kono Azure Saeid Dahl Azure Tiago Costa Azure Viknaraj Manogararajah Azure Viswanatha Swamy Azure Vlad Catrinescu Azure Dharanidharan Balasubramaniam Business Applications Doher Drizzle Pablo Business Applications Faisal Fareed Business Applications Goloknath Mishra Business Applications Haniel Croitoru Business Applications Jeevarajan Kumar Business Applications Julian Sharp Business Applications Kirti Prajapati Business Applications Nadeeja Bomiriya Business Applications Priyesh Wagh Business Applications Rishona Elijah Business Applications Arafat Tehsin Data and AI Armando Lacerda Data and AI Francis Msangi Masera Data and AI Dr. Gomathi Srinivasan Data and AI Hugo Barona Data and AI Indira Bandari Data and AI Jackson Felden Data and AI Janarthanan S Data and AI Juarez Junior Data and AI Narayan Solanki Data and AI Razwan Choudry Data and AI Stefano Demiliani Data and AI Usama Wahab Khan Data and AI Abdullah Altaf General Technologies Arash Aghajani General Technologies Ayodeji Folarin General Technologies Douglas Romão de Souza General Technologies Estelle Auberix General Technologies Gulnaz Mushtaq General Technologies Joshua Jones General Technologies Oluwaseyi Oluwawumiju General Technologies Renato Romão de Souza General Technologies Shinichi Kawara General Technologies Usman Lodhi General Technologies Amit Chandak Microsoft Fabric Ashraf Ghonaim Microsoft Fabric Chris Hyde Microsoft Fabric David Alzamendi Microsoft Fabric Mehrdad Abdollahi Microsoft Fabric Nikola Ilic Microsoft Fabric Pragati Jain Microsoft Fabric Shabnam Watson Microsoft Fabric Daniel Rey Modern Work Nanddeep Nachan Modern Work Sara Fennah Modern Work Sharon Weaver Modern Work Siddharth Vaghasia Modern Work Smita Nachan Modern Work David Okeyode Security, Compliance and Identity Dwayne Natwick Security, Compliance and Identity Eric Woodruff Security, Compliance and Identity Ibrahima Mbodji Security, Compliance and Identity Raphael Koellner Security, Compliance and Identity65KViews49likes39CommentsForms Answer Flag
Hello, I am building a form and I want a question to flag an answer if the answer is not congruent with a previous answer. For example, if I asked "How many children do you have?" and they select a number not the "i have no children:" option, but then later in the form I ask "How old is your child" and they select "I don't have children" I want it to flag that because they previously answered they had x amount of children. Removing the option of no children in the second question is not an option, but I do need it to compare the two answers for inconsistencies. Does MicoForms have the ability to do this?11Views0likes0CommentsPhased results launch - historic upload
I understand that is you have phased access reporting and have not yet granted access to the most recent survey, individuals will automatically be granted access when the next survey cycle closes. Does anyone know: When the current cycle closes, are individuals notified their prior dashboards are available (e.g., via email), or does it simply appear viewable in their dashboard? If notified, can you change this? We conducted a historic upload for our new survey and don't want individuals to be notified that the dashboard is available since that wasn't a "real" survey cycle in Glint. Thank you!34Views1like1Comment🎉 Exciting Opportunity! Share Your Experience with Microsoft's Fundamentals Certification Exams! 🎉
🎉 Exciting Opportunity! Share Your Experience with Microsoft's Fundamentals Certification Exams! 🎉 Have you taken a Microsoft Fundamentals Certification exam? Whether you passed or didn't quite make it, we want to hear from you! Your insights are incredibly valuable and can help shape the future of Microsoft's credentialing experiences. 🕒 Just 5 Minutes of Your Time! 🕒 By completing this quick survey: https://tes.decipherinc.com/survey/selfserve/146d/250400?list=1, you can make a huge impact. Your feedback will directly influence how we improve and enhance our certification process. 📅 Deadline: May 4📅 Don't miss out on this chance to share your thoughts and make a difference. Click the link below to get started: https://tes.decipherinc.com/survey/selfserve/146d/250400?list=1 Complete the survey today! We are running the survey until May 4 or until we have 600 responses, whichever comes first. If you want your voice heard, don't delay!! Thank you for your time and valuable feedback! Let's make Microsoft's certification experience better together! 🚀56Views2likes0CommentsMicrosoft Applied Skills assessment update
We are excited to announce that maintenance for the following Microsoft Applied Skills assessments has been completed, and they are now available: Microsoft Applied Skills: Deploy and configure Azure Monitor Microsoft Applied Skills: Implement security through a pipeline using Azure DevOps Microsoft Applied Skills: Develop an ASP.NET Core web app that consumes an API Microsoft Applied Skills: Create an intelligent document processing solution with Azure AI Document Intelligence Microsoft Applied Skills: Configure secure access to your workloads using Azure networking Microsoft Applied Skills: Secure storage for Azure Files and Azure Blob Storage Microsoft Applied Skills: Build a natural language processing solution with Azure AI Language Microsoft Applied Skills: Secure Azure services and workloads with Microsoft Defender for Cloud regulatory compliance controls Learn more at Microsoft Credentials We will continue to keep you posted on future assessment maintenance completion here.310Views7likes1CommentMove the "In this article" section to the side
In Microsoft Learn, most article have a "In this article" section at the top that serves as a table of content for that article. On longer articles, I find myself having to scroll up to the top to navigate to a different section, which can get quite annoying. I'd like to see this section being placed in one of the sidebars so it is always accessible when reading the article. A great example of doing this is the new Wikipedia page layout where they have done exactly that.15Views1like0Comments365 auto generation of vCards with QR Codes on user creation in 365 admin center
Hello, I wrote a simple python script that creates a QRcode linking to a vCard for a user. Currently this is manually ran in a local terminal by myself. How can I have this script run automatically whenever I make a user in 365 admin center? My goal is after I have entered all of the user's information this script runs, generates a QR Code as a png file, and places it in a folder on our sharepoint. Is this possible? I have never used powershell scripts with Microsoft before32Views0likes0CommentsCannot register for any cert exams
I must renew my expired MB-500 exam, but I'm outside the renewal window so I will have to take the exam again. If I navigate to the MS learn page here: https://learn.microsoft.com/en-us/credentials/certifications/d365-finance-and-operations-apps-developer-associate/?practice-assessment-type=certification about halfway down the page is a link to schedule the exam. The first time that I click that link it asks me to sign in, which I do, with this user. Then it brings me to my profile page, NOT to the exam registration page. I noticed that the fields with my name are blank but required. So I try to fill that in and save, but it doesnt save my name, it refreshes the page and my name is still blank. I can try this several times with several variations of the process and I can never get past this page. If I close the page, and start over while still signed in, go back to the MS learn page, click schedule exam, it takes me directly to my profile page and again, the name is BLANK. If I create a new account, I can access the schedule exam page. Its making me crazy PLEASE HELP! 😭😭58Views0likes1CommentThe true fix for missing Windows 11 Store App.
Here it is ignore other fixes tried them all they don’t work. I lost the Store App in the upgrade from 10 to 11. Even resetting PC never brought it back. So if that sounds similar to how you lost it do this 20 second fix. 1. Open Xbox App 2. Open settings. 3. Click on General settings tab (left second tab on list) 4. In upper right of screen (window) there will be a list of system bundles that are missing (I had three) click install on all of them. When installed it’s done close app. 5. Open Windows settings and go to Apps tab, then Apps and features (very top) scroll down list your welcome Store is back. Go set a restore point cause who knows what a windows update will do next.416Views0likes1CommentMicrosoft Dynamics 365 Finance Functional Consultant Blueprint Opportunity
Greetings! Microsoft is updating the Microsoft Dynamics 365 Finance Functional Consultant certification, and we need your input through our exam blueprinting surveys. The blueprint determines how many questions each skill in the exam will be assigned. Please complete the online survey by April 28th, 2025. Please also feel free to forward the survey to any colleagues you consider subject matter experts for this certification. If you have any questions, feel free to contact Rohan Mahadevan at rmahadevan@microsoft.com or John Sowles at josowles@microsoft.com. Microsoft Dynamics 365 Finance Functional Consultant blueprint survey link: https://microsoftlearning.co1.qualtrics.com/jfe/form/SV_cA65nW4sezfrxnE54Views0likes0Commentsdotnet maui blazor hybrid for Local viewer.
Hi Everyone, `Preformatted text` I am a dotnet Developer. Currently working with .net maui blazor hybrid app. I want to create a Local Dicom Viewer using this template for Windows. i have created a simple project as selecting a single dicom file from local drive and showing its metadata and image. Razor Page:: PAGE "/viewer" @inject IJSRuntime JSRuntime <div class="container"> <h1>DICOM Viewer</h1> <div class="row mb-3"> <div class="col"> <div class="input-group"> <InputFile OnChange="@LoadFiles" class="form-control" accept=".dcm" id="selectFile" /> <button @onclick="ResetViewer" class="btn btn-secondary">Reset</button> </div> <div class="mt-2"> <small class="text-muted">Select a DICOM file or drag and drop (if supported)</small> </div> </div> </div> <div class="row"> <div class="col-md-8"> <div id="cornerstone-element" style="width: 100%; height: 500px; border: 1px solid #ccc; position: relative;"> <div style="position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); color: #888;"> Select a DICOM file to view </div> </div> </div> <div class="col-md-4"> <div class="card"> <div class="card-header">DICOM Info</div> <div class="card-body"> <table class="table table-sm"> <tbody> <tr><td>Transfer Syntax:</td><td id="transfersyntax">-</td></tr> <tr><td>SOP Class UID:</td><td id="sopclassuid">-</td></tr> <tr><td>SOP Instance UID:</td><td id="sopinstanceuid">-</td></tr> <tr><td>Rows:</td><td id="rows">-</td></tr> <tr><td>Columns:</td><td id="columns">-</td></tr> <tr><td>Spacing:</td><td id="spacing">-</td></tr> <tr><td>Direction:</td><td id="direction">-</td></tr> <tr><td>Origin:</td><td id="origin">-</td></tr> <tr><td>Modality:</td><td id="modality">-</td></tr> <tr><td>Pixel Representation:</td><td id="pixelrepresentation">-</td></tr> <tr><td>Bits Allocated:</td><td id="bitsallocated">-</td></tr> <tr><td>Bits Stored:</td><td id="bitsstored">-</td></tr> <tr><td>High Bit:</td><td id="highbit">-</td></tr> <tr><td>Photometric Interpretation:</td><td id="photometricinterpretation">-</td></tr> <tr><td>Window Center:</td><td id="windowcenter">-</td></tr> <tr><td>Window Width:</td><td id="windowwidth">-</td></tr> </tbody> </table> </div> </div> </div> </div> </div> @code { protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { try { // Initialize the DICOM viewer using the global interop object await JSRuntime.InvokeVoidAsync("dicomViewerInterop.initDicomViewer"); } catch (Exception ex) { Console.WriteLine($"Error initializing DICOM viewer: {ex.Message}"); } } } private async Task LoadFiles(InputFileChangeEventArgs e) { var file = e.File; if (file != null) { try { // Read the file content using var stream = file.OpenReadStream(maxAllowedSize: 30000000); // Adjust max allowed size if needed using var ms = new MemoryStream(); await stream.CopyToAsync(ms); byte[] fileData = ms.ToArray(); var filename=file.Name; // Send the file data to JS await JSRuntime.InvokeVoidAsync("dicomViewerInterop.loadDicomFileFromArray", fileData, file.Name); } catch (Exception ex) { Console.WriteLine($"Error loading DICOM file: {ex.Message}"); } } } private async Task ResetViewer() { try { await JSRuntime.InvokeVoidAsync("dicomViewerInterop.resetViewer"); } catch (Exception ex) { Console.WriteLine($"Error resetting viewer: {ex.Message}"); } } } Javascript Interop: // Cornerstone interop code for MAUI Blazor // Global variables to store references var cornerstone, cornerstoneTools, dicomImageLoader, dicomParser; var renderingEngine = null; var viewport = null; var toolGroup = null; var initialized = false; var uids = {}; // Initialize the UIds for SOP Class descriptions function initUids() { // Common DICOM UIDs uids = { '1.2.840.10008.5.1.4.1.1.1': 'CR Image Storage', '1.2.840.10008.5.1.4.1.1.1.1': 'Digital X-Ray Image - For Presentation', '1.2.840.10008.5.1.4.1.1.1.1.1': 'Digital X-Ray Image - For Processing', '1.2.840.10008.5.1.4.1.1.2': 'CT Image Storage', '1.2.840.10008.5.1.4.1.1.3.1': 'Ultrasound Multi-frame Image Storage', '1.2.840.10008.5.1.4.1.1.4': 'MR Image Storage', '1.2.840.10008.5.1.4.1.1.6.1': 'Ultrasound Image Storage', '1.2.840.10008.5.1.4.1.1.7': 'Secondary Capture Image Storage', '1.2.840.10008.5.1.4.1.1.128': 'Positron Emission Tomography Image Storage', '1.2.840.10008.5.1.4.1.1.13.1.1': 'X-Ray 3D Angiographic Image Storage', '1.2.840.10008.5.1.4.1.1.13.1.2': 'X-Ray 3D Craniofacial Image Storage', '1.2.840.10008.5.1.4.1.1.13.1.3': 'Breast Tomosynthesis Image Storage' }; } // Check if libraries are loaded function checkLibraryLoading() { console.log("DOM content loaded"); if (typeof dicomViewer === 'undefined') { console.error("dicomViewer bundle is not loaded"); return false; } if (typeof dicomViewer.cornerstoneCore === 'undefined') { console.error(" Cornerstone3D is not loaded"); return false; } if (typeof dicomViewer.cornerstoneTools === 'undefined') { console.error(" CornerstoneTools is not loaded"); return false; } if (typeof dicomViewer.dicomImageLoader === 'undefined') { console.error(" DICOM Image Loader is not loaded"); return false; } if (typeof dicomViewer.dicomParser === 'undefined') { console.error(" DICOM Parser is not loaded"); return false; } return true; } // Initialize volume loader (compatible with Cornerstone3D v3.8.0) async function initVolumeLoader() { try { // Register the volume loader using newer API approach if (cornerstone.volumeLoader) { // Some versions might have this interface cornerstone.volumeLoader.registerUnknownVolumeLoader(); cornerstone.volumeLoader.registerVolumeLoader('dicom', function () { return { loadVolume: function () { return Promise.resolve(null); } }; }); } else { // Fallback for other versions console.log("Using fallback volume loader approach"); } } catch (error) { console.error("Error in initVolumeLoader:", error); } } // Initialize providers async function initProviders() { try { // Simplified initialization for adapting to different versions if (cornerstone.registerVolumeLoader) { cornerstone.registerVolumeLoader('dicomweb', function () { return { loadVolume: function () { return Promise.resolve(null); } }; }); } } catch (error) { console.error("Error in initProviders:", error); } } // Setup HTML function setupHTML() { const element = document.getElementById('cornerstone-element'); if (element) { // Clear any existing content element.innerHTML = ''; // Set up drop zone functionality element.addEventListener('dragover', handleDragOver, false); element.addEventListener('drop', handleFileSelect, false); } return element; } // Drag over handler function handleDragOver(evt) { evt.stopPropagation(); evt.preventDefault(); evt.dataTransfer.dropEffect = 'copy'; // Show as a copy operation } // File drop handler function handleFileSelect(evt) { evt.stopPropagation(); evt.preventDefault(); // Get the file that was dropped const files = evt.dataTransfer.files; if (files.length > 0) { const file = files[0]; // Read the file and load it const reader = new FileReader(); reader.onload = function (e) { const arrayBuffer = e.target.result; loadDicomFileFromArrayBuffer(arrayBuffer, file.name); }; reader.readAsArrayBuffer(file); } } // Initialize the DICOM viewer (called from Blazor) function initDicomViewer() { try { // Check if libraries are loaded if (!checkLibraryLoading()) { return Promise.reject("Libraries not loaded"); } // Assign the libraries from the global bundle cornerstone = dicomViewer.cornerstoneCore; cornerstoneTools = dicomViewer.cornerstoneTools; dicomImageLoader = dicomViewer.dicomImageLoader; dicomParser = dicomViewer.dicomParser; // Init UIDs initUids(); // Initialize image loader return Promise.resolve() .then(() => initVolumeLoader()) .then(() => { // Initialize DICOM image loader if (dicomImageLoader.init) { dicomImageLoader.init(); } return initProviders(); }) .then(() => { // Set CPU rendering for compatibility if (cornerstone.setUseCPURendering) { cornerstone.setUseCPURendering(true); } // Add tools if they exist if (!cornerstoneTools.addTool) { console.warn("Tool functions not available in this version"); return; } // Extract tool classes and enums const PanTool = cornerstoneTools.PanTool; const WindowLevelTool = cornerstoneTools.WindowLevelTool; const StackScrollTool = cornerstoneTools.StackScrollTool; const ZoomTool = cornerstoneTools.ZoomTool; const ToolGroupManager = cornerstoneTools.ToolGroupManager; // Get mouse bindings from enums if available const MouseBindings = cornerstoneTools.Enums?.MouseBindings || { Primary: 1, Auxiliary: 2, Secondary: 3, Wheel: 4 }; // Add tools if (PanTool) cornerstoneTools.addTool(PanTool); if (WindowLevelTool) cornerstoneTools.addTool(WindowLevelTool); if (StackScrollTool) cornerstoneTools.addTool(StackScrollTool); if (ZoomTool) cornerstoneTools.addTool(ZoomTool); // Create tool group if ToolGroupManager exists if (ToolGroupManager && ToolGroupManager.createToolGroup) { const toolGroupId = 'myToolGroup'; toolGroup = ToolGroupManager.createToolGroup(toolGroupId); // Add tools to the group if (WindowLevelTool) toolGroup.addTool(WindowLevelTool.toolName); if (PanTool) toolGroup.addTool(PanTool.toolName); if (ZoomTool) toolGroup.addTool(ZoomTool.toolName); if (StackScrollTool) toolGroup.addTool(StackScrollTool.toolName); // Set tool bindings if (WindowLevelTool) { toolGroup.setToolActive(WindowLevelTool.toolName, { bindings: [{ mouseButton: MouseBindings.Primary, // Left Click }], }); } if (PanTool) { toolGroup.setToolActive(PanTool.toolName, { bindings: [{ mouseButton: MouseBindings.Auxiliary, // Middle Click }], }); } if (ZoomTool) { toolGroup.setToolActive(ZoomTool.toolName, { bindings: [{ mouseButton: MouseBindings.Secondary, // Right Click }], }); } if (StackScrollTool) { toolGroup.setToolActive(StackScrollTool.toolName, { bindings: [{ mouseButton: MouseBindings.Wheel }], }); } } // Setup the HTML element const element = setupHTML(); if (!element) { console.error('Element not found'); return; } // Create the rendering engine if the RenderingEngine class exists if (cornerstone.RenderingEngine) { const renderingEngineId = 'myRenderingEngine'; renderingEngine = new cornerstone.RenderingEngine(renderingEngineId); // Create the viewport const viewportId = 'CT_STACK'; const viewportInput = { viewportId, type: cornerstone.Enums.ViewportType.STACK, element, defaultOptions: { background: [0.2, 0, 0.2], }, }; // Enable the viewport renderingEngine.enableElement(viewportInput); // Get the viewport we created viewport = renderingEngine.getViewport(viewportId); // Add the viewport to the tool group if (toolGroup) { toolGroup.addViewport(viewportId, renderingEngineId); } } else { console.error("RenderingEngine not available"); return; } // Mark as initialized initialized = true; console.log('DICOM viewer initialized successfully'); return Promise.resolve(); }); } catch (error) { console.error('Error initializing DICOM viewer:', error); return Promise.reject(error); } } // Load a DICOM file from an array buffer function loadDicomFileFromArrayBuffer(arrayBuffer, fileName) { if (!initialized || !viewport) { console.error('DICOM viewer not initialized'); return Promise.reject('DICOM viewer not initialized'); } try { // Use the DICOM Image Loader to create an image ID const uint8Array = new Uint8Array(arrayBuffer); let imageId; if (dicomImageLoader.wadouri.fileManager.addByteArray) { imageId = dicomImageLoader.wadouri.fileManager.addByteArray(uint8Array); } else if (dicomImageLoader.wadouri.fileManager.add) { // Create a File-like object const blob = new Blob([uint8Array]); const file = new File([blob], fileName); console.log(file, fileName); imageId = dicomImageLoader.wadouri.fileManager.add(file); console.log(imageId); } else { console.error("No appropriate method to load DICOM file"); return Promise.reject("No appropriate method to load DICOM file"); } // Create a stack with this image const stack = [imageId]; // Set the stack on the viewport viewport.setStack(stack) // Render the image viewport.render(); // Update metadata display updateMetadataDisplay(imageId); console.log('DICOM file loaded successfully:', fileName); // return Promise.resolve(); } catch (error) { console.error('Error loading DICOM file:', error); return Promise.reject(error); } } // Update the metadata display function updateMetadataDisplay(imageId) { try { if (!viewport) return; const imageData = viewport.getImageData(); const { metaData } = cornerstone; // Get metadata from Cornerstone const pixelModule = metaData.get('imagePixelModule', imageId); const voiLutModule = metaData.get('voiLutModule', imageId); const sopCommonModule = metaData.get('sopCommonModule', imageId); const transferSyntax = metaData.get('transferSyntax', imageId); // Update UI elements with the metadata document.getElementById('transfersyntax').innerHTML = transferSyntax?.transferSyntaxUID || '-'; if (sopCommonModule?.sopClassUID) { const sopClassDesc = uids[sopCommonModule.sopClassUID] || 'Unknown'; document.getElementById('sopclassuid').innerHTML = `${sopCommonModule.sopClassUID} [${sopClassDesc}]`; } else { document.getElementById('sopclassuid').innerHTML = '-'; } document.getElementById('sopinstanceuid').innerHTML = sopCommonModule?.sopInstanceUID || '-'; document.getElementById('rows').innerHTML = imageData?.dimensions[0] || '-'; document.getElementById('columns').innerHTML = imageData?.dimensions[1] || '-'; document.getElementById('spacing').innerHTML = imageData?.spacing.join('\\') || '-'; const formattedDirection = imageData?.direction ? imageData.direction.map(x => Math.round(x * 100) / 100).join(',') : '-'; document.getElementById('direction').innerHTML = formattedDirection; const formattedOrigin = imageData?.origin ? imageData.origin.map(x => Math.round(x * 100) / 100).join(',') : '-'; document.getElementById('origin').innerHTML = formattedOrigin; document.getElementById('modality').innerHTML = imageData?.metadata?.Modality || '-'; document.getElementById('pixelrepresentation').innerHTML = pixelModule?.pixelRepresentation || '-'; document.getElementById('bitsallocated').innerHTML = pixelModule?.bitsAllocated || '-'; document.getElementById('bitsstored').innerHTML = pixelModule?.bitsStored || '-'; document.getElementById('highbit').innerHTML = pixelModule?.highBit || '-'; document.getElementById('photometricinterpretation').innerHTML = pixelModule?.photometricInterpretation || '-'; document.getElementById('windowcenter').innerHTML = voiLutModule?.windowCenter || '-'; document.getElementById('windowwidth').innerHTML = voiLutModule?.windowWidth || '-'; } catch (error) { console.error('Error updating metadata display:', error); } } // Load a DICOM file from a byte array (called from Blazor) function loadDicomFileFromArray(byteArray, fileName) { const arrayBuffer = new Uint8Array(byteArray).buffer; return loadDicomFileFromArrayBuffer(arrayBuffer, fileName); } // Reset the viewer function resetViewer() { if (viewport) { viewport.reset(); viewport.render(); // Reset the metadata display const elements = [ 'transfersyntax', 'sopclassuid', 'sopinstanceuid', 'rows', 'columns', 'spacing', 'direction', 'origin', 'modality', 'pixelrepresentation', 'bitsallocated', 'bitsstored', 'highbit', 'photometricinterpretation', 'windowcenter', 'windowwidth' ]; elements.forEach(id => { document.getElementById(id).innerHTML = '-'; }); return Promise.resolve(); } return Promise.reject("Viewport not initialized"); } // Add to window for accessibility from Blazor window.dicomViewerInterop = { initDicomViewer: initDicomViewer, loadDicomFileFromArray: loadDicomFileFromArray, resetViewer: resetViewer }; // Log when the script is loaded console.log("Cornerstone interop script loaded"); // Check if DOM is already loaded, otherwise wait for it if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', checkLibraryLoading); } else { checkLibraryLoading(); } i am able to load the cornerstone modules from my bundle file , but unable to get metadata and unable to render the image.30Views0likes0Comments🧠 How to Create Your Microsoft Learn Profile?
Visit: https://learn.microsoft.com ✅ Step-by-Step Instructions: Click Sign in at the top right corner. Choose Sign in with a Microsoft account or create one if you don’t have it yet. (You can use your Outlook.com, Hotmail, Live.com, or even Gmail address.) After signing in, click your profile icon (top right), then select Profile. Fill in your name, country/region, and privacy settings. Click Save — and you’re ready to start learning! 🎥 Prefer a Video Guide? Watch here: https://www.youtube.com/watch?v=zQxVJrdOTwM 💡 Bonus Tips: Upload a profile photo Connect your LinkedIn or GitHub Use your Dashboard to track badges and progress309Views3likes1CommentMicrosoft Power Platform Developer Blueprinting Opportunity
Greetings! Microsoft is updating the Microsoft Power Platform Developer certification, and we need your input through our exam blueprinting surveys. The blueprint determines how many questions each skill in the exam will be assigned. Please complete the online survey by April 23rd, 2025. Please also feel free to forward the survey to any colleagues you consider subject matter experts for this certification. If you have any questions, feel free to contact Rohan Mahadevan at rmahadevan@microsoft.com or John Sowles at josowles@microsoft.com. Microsoft Power Platform Developer blueprint survey link: https://microsoftlearning.co1.qualtrics.com/jfe/form/SV_0AijGLcCb2oL7fM35Views2likes0CommentsWhich MS Office is most suitable for me and my family?
Hi I’ve just splashed out on an iMAC and I would like to pay a one-off fee for my family to use Office. I need Office for PowerPoint and Word mostly plus Outlook (but that’s a bit complicated - see below). 3 questions - 1) are there different versions of Office for Apple vs PC products? 2) which is the most up to date version I can get of Office? (Based UK). 3) I’m seeing so much conflicting information - are immediate downloads online ok? (Worried about system corruption which is why I bought Apple in the first place) Just to complicate “slightly” - I have an Outlook account through work, plus my kids have school Outlook accounts. My kids’ accounts have been automatically deleted from my work Outlook (I think due to new security). Can I keep my work Outlook on my iPAD or will this automatically migrate to my new iMAC and therefore I can only access my work Outlook? I want to keep my work Outlook on my iPAD, and for me / my kids to have access to their Outlook on my iMAC. Hope that makes sense. I’m not techy, please be kind!67Views0likes2CommentsUpdate Stack Package - (Version 922.415.111.0)
Deleted I have been trying to update this update for the last 3 days, but it is not updating. I am getting the same error again and again. How can I fix it? It is not downloading more than 1% every time, due to which I am not able to get any more updates. This update came on my system on the day when the 'Blue Screen of Death' problem occurred on the Microsoft server, but since that day, it has not been updating on my system.3KViews2likes3CommentsPassed the MS-102 exam but not seeing certificate.
I have passed the Exam MS-102: Microsoft 365 Administrator back on August 11 2024. However I do not see the certificate for this exam. I have reached out to Pearson Vue who referenced me to the support page for live chat with Microsoft. Which the chat with Microsoft referenced only this forum and not available live person to chat/call or email. I am left with having to open a "discussion" here to try to get further assistance on this matter. Please let me know what needs to be done to move this forward.109Views0likes2CommentsIssue with my profile
Hi. I need to access the Credentials section in my Microsoft Learn profile but it currently shows an error message asking to reload the page, but once you do it, the same message appears. Where can I report this issue? I apoloigize if it is not the proper place to report this, I didn't find other way. Thank you.545Views1like1Comment
Events
Recent Blogs
- 4 MIN READOur kickoff celebration’s 24-hour learning blitz was an amazing start to the Microsoft AI Skills Fest! The festivities continue through May 28, 2025, and we’ve lined up multiple learning experienc...Apr 09, 20252.6KViews2likes2Comments
- *Updated as of March 28, 2025. And we’re live! The registration for the Microsoft AI Skills Fest is now open to everyone! Join us on April 8, 2025, as we kick off this global skilling event to bri...Mar 24, 202596KViews14likes41Comments